From: Johannes Berg <johannes@sipsolutions.net>
Date: Fri, 10 Jul 2009 00:45:38 +0000 (+0200)
Subject: cfg80211: fix a locking bug
X-Git-Tag: firefly_0821_release~12983^2~544^2~108
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ec3f149017ef3fd21343b1dcec3589eec6ba5dd5;p=firefly-linux-kernel-4.4.55.git

cfg80211: fix a locking bug

The cfg80211_sme_disassoc() function is already holding
a lock here that cfg80211_mlme_deauth() would take, so
it needs to use __cfg80211_mlme_deauth() instead.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---

diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index d635a99dba51..10ed36621bd7 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -826,8 +826,8 @@ void cfg80211_sme_disassoc(struct net_device *dev, int idx)
 		return;
 
 	memcpy(bssid, wdev->auth_bsses[idx]->pub.bssid, ETH_ALEN);
-	if (cfg80211_mlme_deauth(rdev, dev, bssid,
-				 NULL, 0, WLAN_REASON_DEAUTH_LEAVING)) {
+	if (__cfg80211_mlme_deauth(rdev, dev, bssid,
+				   NULL, 0, WLAN_REASON_DEAUTH_LEAVING)) {
 		/* whatever -- assume gone anyway */
 		cfg80211_unhold_bss(wdev->auth_bsses[idx]);
 		cfg80211_put_bss(&wdev->auth_bsses[idx]->pub);