From: Johannes Berg Date: Fri, 10 Jul 2009 00:45:38 +0000 (+0200) Subject: cfg80211: fix a locking bug X-Git-Tag: v2.6.32-rc1~703^2~544^2~108 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=ec3f149017ef3fd21343b1dcec3589eec6ba5dd5;p=karo-tx-linux.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 Signed-off-by: John W. Linville --- 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);