wl12xx: remove unneeded locking
authorJohannes Berg <johannes.berg@intel.com>
Thu, 26 Aug 2010 11:30:27 +0000 (13:30 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 27 Aug 2010 17:27:06 +0000 (13:27 -0400)
With the scan callback now being callable from
any context, these unlocks/locks can go away.
This makes the code easier to understand, since
callers of these functions must no longer be
aware that the mutex may be dropped.

As Stanislaw is working on iwlwifi scanning, I
didn't change it to take advantage of the new
mac80211 semantics.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/wl12xx/wl1251_event.c
drivers/net/wireless/wl12xx/wl1251_main.c
drivers/net/wireless/wl12xx/wl1271_main.c
drivers/net/wireless/wl12xx/wl1271_scan.c

index 00c3e648d93f99135232b304bd38aafc485b0087..54223556b3088d1b9078d6b8131ba6b2f08e185a 100644 (file)
@@ -34,9 +34,7 @@ static int wl1251_event_scan_complete(struct wl1251 *wl,
                     mbox->scheduled_scan_channels);
 
        if (wl->scanning) {
-               mutex_unlock(&wl->mutex);
                ieee80211_scan_completed(wl->hw, false);
-               mutex_lock(&wl->mutex);
                wl1251_debug(DEBUG_MAC80211, "mac80211 hw scan completed");
                wl->scanning = false;
        }
index edd4845c370754752daed1ab0b9c4a0db491f77a..f9d9ad620cc9f0f538f7c7257f61cac8c20dbab9 100644 (file)
@@ -467,9 +467,7 @@ static void wl1251_op_stop(struct ieee80211_hw *hw)
        WARN_ON(wl->state != WL1251_STATE_ON);
 
        if (wl->scanning) {
-               mutex_unlock(&wl->mutex);
                ieee80211_scan_completed(wl->hw, true);
-               mutex_lock(&wl->mutex);
                wl->scanning = false;
        }
 
index 30194c0f36a9bfc57c87830b831cf63ac0077084..8e55cf8d509d8e4faa0802e3dc2d018aab97bbdf 100644 (file)
@@ -948,9 +948,7 @@ static void wl1271_op_remove_interface(struct ieee80211_hw *hw,
                ieee80211_enable_dyn_ps(wl->vif);
 
        if (wl->scan.state != WL1271_SCAN_STATE_IDLE) {
-               mutex_unlock(&wl->mutex);
                ieee80211_scan_completed(wl->hw, true);
-               mutex_lock(&wl->mutex);
                wl->scan.state = WL1271_SCAN_STATE_IDLE;
                kfree(wl->scan.scanned_ch);
                wl->scan.scanned_ch = NULL;
index fec43eed8c553424231c6b990132b35bf8b7167b..9c80ba9b6be0dc012ef4dfef329beaf9ac3a7179 100644 (file)
@@ -215,9 +215,7 @@ void wl1271_scan_stm(struct wl1271 *wl)
                break;
 
        case WL1271_SCAN_STATE_DONE:
-               mutex_unlock(&wl->mutex);
                ieee80211_scan_completed(wl->hw, false);
-               mutex_lock(&wl->mutex);
 
                kfree(wl->scan.scanned_ch);
                wl->scan.scanned_ch = NULL;