summaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2010-04-29 21:34:01 +0200
committerJohn W. Linville <linville@tuxdriver.com>2010-04-30 20:59:15 +0200
commit49b5c7f473f1bbcb30275dcaee2c06dfb8ec2279 (patch)
treec11eefc297ad0a0aae253f682bf66912b9907ad9 /net/mac80211
parentlibertas_tf: avoid warning about pr_fmt redefinition (diff)
downloadlinux-49b5c7f473f1bbcb30275dcaee2c06dfb8ec2279.tar.xz
linux-49b5c7f473f1bbcb30275dcaee2c06dfb8ec2279.zip
mac80211: tell driver about IBSS merge
My previous patch "mac80211: notify driver about IBSS status" left a problem -- when we merge with a new BSSID, we never tell the driver that we left the old one. Fix that. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/ibss.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index a87e309e3b99..c585fced8584 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -91,6 +91,12 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
if (memcmp(ifibss->bssid, bssid, ETH_ALEN))
sta_info_flush(sdata->local, sdata);
+ /* if merging, indicate to driver that we leave the old IBSS */
+ if (sdata->vif.bss_conf.ibss_joined) {
+ sdata->vif.bss_conf.ibss_joined = false;
+ ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_IBSS);
+ }
+
memcpy(ifibss->bssid, bssid, ETH_ALEN);
sdata->drop_unencrypted = capability & WLAN_CAPABILITY_PRIVACY ? 1 : 0;