Fix dead lock in Tethering state machine
This fix is for tethering from N MR1. It reserves the same idea originally in e4bdfd8ad86a013c5a2ee8964119393cea1ec4a3. Tethering is animated by two state machines. If an error occurs, one of the state machine notifies the other and definitely stays in the error state while the other retries the tether operation after having treated the error. An example is when dnsmasq is started by calling tether(), but while it hasn't finished starting yet untether() is called asynchronously by a different tethering. Then "Setting DNS forwarders failed!" error occurs and device can't be tethered anymore without reboot. This patch allows to clear the error of the blocked state machine from the other one and thus recover a normal cycle. Test: fastly switching USB/Wi-Fi tethering On/Off repeatedly Test: manually kill dnsmasq during BT tethering then turn on Wi-Fi tethering Change-Id: Ide062dd4c15a0e7c72eced9a5fe807f845d4ea9c
Loading
Please register or sign in to comment