From fec788327369ade5d0bfb9fba080c368e8471827 Mon Sep 17 00:00:00 2001 From: Ningyuan Wang Date: Fri, 16 Sep 2016 11:20:30 -0700 Subject: Clean up interfaces before WifiStateMachine configures interfaces This ensures that wificond continue to work even if java framework crashes. BUG=31524948 TEST=compile, manual tests Change-Id: Id2d296b63a00d345a83405527161d9cfeb016d53 --- service/java/com/android/server/wifi/WifiStateMachine.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java index 73b182a63..be21ccc6a 100644 --- a/service/java/com/android/server/wifi/WifiStateMachine.java +++ b/service/java/com/android/server/wifi/WifiStateMachine.java @@ -1021,6 +1021,18 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss setLogRecSize(NUM_LOG_RECS_NORMAL); setLogOnlyTransitions(false); + // Clean up existing interfaces in wificond. + // This ensures that wificond continue to work if java framework restarts. + try { + mWificond = mWifiInjector.makeWificond(); + if (mWificond != null) { + mWificond.tearDownInterfaces(); + } + } catch (RemoteException e) { + // There is very little we can do here + Log.e(TAG, "Failed to tear down interfaces via wificond"); + } + //start the state machine start(); -- cgit v1.2.3