summaryrefslogtreecommitdiffstats
path: root/wifi
diff options
context:
space:
mode:
authorIrfan Sheriff <isheriff@google.com>2009-12-22 21:42:17 -0800
committerIrfan Sheriff <isheriff@google.com>2010-01-08 12:04:30 -0800
commit7aac5547daf54005243c5d685cf60c5a4ff74a44 (patch)
treec5b1a1763bf1acdec678ddcfa76e2451a6d07df5 /wifi
parent660cc3461afbf0631cc8d4ab628628d68d840014 (diff)
downloadframeworks_base-7aac5547daf54005243c5d685cf60c5a4ff74a44.zip
frameworks_base-7aac5547daf54005243c5d685cf60c5a4ff74a44.tar.gz
frameworks_base-7aac5547daf54005243c5d685cf60c5a4ff74a44.tar.bz2
Synchronize all WifiNative calls
Some of the native calls were left unsynchronized in the framework. Pre-empted IOCTL call interrupted by another call from the framework cannot be handled in the driver. Bug: 2310455
Diffstat (limited to 'wifi')
-rw-r--r--wifi/java/android/net/wifi/WifiStateTracker.java7
1 files changed, 4 insertions, 3 deletions
diff --git a/wifi/java/android/net/wifi/WifiStateTracker.java b/wifi/java/android/net/wifi/WifiStateTracker.java
index 9d8f730..2668fe0 100644
--- a/wifi/java/android/net/wifi/WifiStateTracker.java
+++ b/wifi/java/android/net/wifi/WifiStateTracker.java
@@ -616,7 +616,7 @@ public class WifiStateTracker extends NetworkStateTracker {
* @return {@code true} if the operation succeeds, {@code false} otherwise, e.g.,
* the number of channels is invalid.
*/
- public boolean setNumAllowedChannels() {
+ public synchronized boolean setNumAllowedChannels() {
try {
return setNumAllowedChannels(
Settings.Secure.getInt(mContext.getContentResolver(),
@@ -859,7 +859,9 @@ public class WifiStateTracker extends NetworkStateTracker {
// Only do this if we haven't gotten a new supplicant status since the timer
// started
if (mNumSupplicantStateChanges == msg.arg1) {
- WifiNative.scanCommand(false); // do a passive scan
+ synchronized (this) {
+ WifiNative.scanCommand(false); // do a passive scan
+ }
}
break;
@@ -1154,7 +1156,6 @@ public class WifiStateTracker extends NetworkStateTracker {
// [31- 1] Reserved for future use
// [ 0- 0] Interface configuration succeeded (1) or failed (0)
EventLog.writeEvent(EVENTLOG_INTERFACE_CONFIGURATION_STATE_CHANGED, 0);
-
mHaveIpAddress = false;
mWifiInfo.setIpAddress(0);
mObtainingIpAddress = false;