Skip to content
Commit 977aad5a authored by Yohei, Oshima's avatar Yohei, Oshima Committed by Nguyen Vu Thanh Tung
Browse files

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
parent 05550d9e
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment