Fix an incorrectly created race accessing Wifi Supplicant
ScanModeState is trying to undo whatever it did in its enter(), in its exit() function. But doing that is incorrect because it is possible to transition to multiple states that require different conditions. In this bug, the state machine transitioned from ScanModeState to WaitForP2pDisabled state; in response to Stop Supplicant command. Well, when we are trying to stop supplicant, there is clearly no need to enable P2P or load all networks. But since this code exists in exit(), it is executed nonetheless, causing race conditions accessing the wpa_supplicant (WifiStateMachine is trying to shut it down, but P2pStateMachine is trying to bring up the p2p interfaces). We solve that problem by moving this code to the place where we transition to DisconnectedState - since that's the state that needs this as a precondition. Bug: 10761752 Change-Id: Iaf0ffd8056de8533b5d2bfdf8c440fbb7e406dac
Loading
Please register or sign in to comment