Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e34870f8 authored by Roland Vossen's avatar Roland Vossen Committed by Greg Kroah-Hartman
Browse files

staging: brcm80211: removed locks around Mac80211 calls



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: default avatarRoland Vossen <rvossen@broadcom.com>
Reviewed-by: default avatarArend van Spriel <arend@broadcom.com>
Reviewed-by: default avatarBrett Rudley <brudley@broadcom.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 55182a10
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -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);
@@ -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
@@ -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;
}