summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2009-12-20 11:04:43 +0000
committerFelix Fietkau <nbd@openwrt.org>2009-12-20 11:04:43 +0000
commit6d3d1504cf17e95b670e7ef83bcc42021b7fb9b6 (patch)
treedb51a2fa239b53111e9fdfa03afb20d7f81f5868 /package
parent6859128d3aec5f589af1611876f31863b8e1f8b9 (diff)
downloadmaster-31e0f0ae-6d3d1504cf17e95b670e7ef83bcc42021b7fb9b6.tar.gz
master-31e0f0ae-6d3d1504cf17e95b670e7ef83bcc42021b7fb9b6.tar.bz2
master-31e0f0ae-6d3d1504cf17e95b670e7ef83bcc42021b7fb9b6.zip
mac80211: fix a race condition in ad-hoc bringup with fixed bssid
SVN-Revision: 18859
Diffstat (limited to 'package')
-rw-r--r--package/mac80211/patches/200-mac80211_ibss_fix.patch20
1 files changed, 20 insertions, 0 deletions
diff --git a/package/mac80211/patches/200-mac80211_ibss_fix.patch b/package/mac80211/patches/200-mac80211_ibss_fix.patch
new file mode 100644
index 0000000000..c2fb1d7a25
--- /dev/null
+++ b/package/mac80211/patches/200-mac80211_ibss_fix.patch
@@ -0,0 +1,20 @@
+--- a/net/mac80211/ibss.c
++++ b/net/mac80211/ibss.c
+@@ -382,6 +382,7 @@ static void ieee80211_rx_bss_info(struct
+ struct sta_info *ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata,
+ u8 *bssid,u8 *addr, u32 supp_rates)
+ {
++ struct ieee80211_if_ibss *ifibss = &sdata->u.ibss;
+ struct ieee80211_local *local = sdata->local;
+ struct sta_info *sta;
+ int band = local->hw.conf.channel->band;
+@@ -397,6 +398,9 @@ struct sta_info *ieee80211_ibss_add_sta(
+ return NULL;
+ }
+
++ if (ifibss->state == IEEE80211_IBSS_MLME_SEARCH)
++ return NULL;
++
+ if (compare_ether_addr(bssid, sdata->u.ibss.bssid))
+ return NULL;
+