mac80211: merge an ibss dfs locking fix

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 39002
lede-17.01
Felix Fietkau 2013-12-08 14:48:34 +00:00
parent 7a260c3620
commit f56030265d
1 changed files with 15 additions and 2 deletions

View File

@ -6123,7 +6123,16 @@
--- a/net/mac80211/ibss.c --- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c +++ b/net/mac80211/ibss.c
@@ -550,12 +550,12 @@ int ieee80211_ibss_finish_csa(struct iee @@ -534,7 +534,7 @@ int ieee80211_ibss_finish_csa(struct iee
int err;
u16 capability;
- sdata_lock(sdata);
+ sdata_assert_lock(sdata);
/* update cfg80211 bss information with the new channel */
if (!is_zero_ether_addr(ifibss->bssid)) {
capability = WLAN_CAPABILITY_IBSS;
@@ -550,16 +550,15 @@ int ieee80211_ibss_finish_csa(struct iee
capability); capability);
/* XXX: should not really modify cfg80211 data */ /* XXX: should not really modify cfg80211 data */
if (cbss) { if (cbss) {
@ -6138,7 +6147,11 @@
/* generate the beacon */ /* generate the beacon */
err = ieee80211_ibss_csa_beacon(sdata, NULL); err = ieee80211_ibss_csa_beacon(sdata, NULL);
@@ -922,7 +922,7 @@ ieee80211_ibss_process_chanswitch(struct - sdata_unlock(sdata);
if (err < 0)
return err;
@@ -922,7 +921,7 @@ ieee80211_ibss_process_chanswitch(struct
IEEE80211_MAX_QUEUE_MAP, IEEE80211_MAX_QUEUE_MAP,
IEEE80211_QUEUE_STOP_REASON_CSA); IEEE80211_QUEUE_STOP_REASON_CSA);