Skip to content

Commit

Permalink
staging: brcm80211: removed locks around Mac80211 calls
Browse files Browse the repository at this point in the history
A spinlock was acquired prior to calling the Mac80211 functions
ieee80211_wake_queues() and ieee80211_stop_queues() and Cfg80211 functions
wiphy_rfkill_set_hw_state() and wiphy_rfkill_start_polling().
This is not required and could even lead to instability. Therefore the locks
were removed.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Reviewed-by:   Arend van Spriel <arend@broadcom.com>
Reviewed-by:   Brett Rudley <brudley@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Roland Vossen authored and Greg Kroah-Hartman committed Feb 23, 2011
1 parent 55182a1 commit e34870f
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,7 @@ static int wl_ops_start(struct ieee80211_hw *hw)
WL_NONE("%s : Initial channel: %d\n", __func__, curchan->hw_value);
*/

WL_LOCK(wl);
ieee80211_wake_queues(hw);
WL_UNLOCK(wl);
blocked = wl_rfkill_set_hw_state(wl);
if (!blocked)
wiphy_rfkill_stop_polling(wl->pub->ieee_hw->wiphy);
Expand All @@ -185,9 +183,8 @@ static void wl_ops_stop(struct ieee80211_hw *hw)
{
struct wl_info *wl = hw->priv;
ASSERT(wl);
WL_LOCK(wl);
ieee80211_stop_queues(hw);
WL_UNLOCK(wl);
return;
}

static int
Expand Down Expand Up @@ -1988,8 +1985,10 @@ bool wl_rfkill_set_hw_state(struct wl_info *wl)

WL_NONE("%s: update hw state: blocked=%s\n", __func__,
blocked ? "true" : "false");
WL_UNLOCK(wl);
wiphy_rfkill_set_hw_state(wl->pub->ieee_hw->wiphy, blocked);
if (blocked)
wiphy_rfkill_start_polling(wl->pub->ieee_hw->wiphy);
WL_LOCK(wl);
return blocked;
}

0 comments on commit e34870f

Please sign in to comment.