From: Johannes Berg Date: Mon, 31 Mar 2008 17:22:59 +0000 (+0200) Subject: mac80211 ibss: flush only stations belonging to current interface X-Git-Tag: v2.6.26-rc1~1138^2~245 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9dd6aed05b8859265cd79f1e47e4f844bbe1548b;p=linux-2.6 mac80211 ibss: flush only stations belonging to current interface When joining a new IBSS, all old stations are flushed, but currently all stations belonging to all virtual interfaces are flushed, which is wrong. This patch fixes it. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville --- diff --git a/net/mac80211/ieee80211_sta.c b/net/mac80211/ieee80211_sta.c index f9cf2f1878..baa68575b9 100644 --- a/net/mac80211/ieee80211_sta.c +++ b/net/mac80211/ieee80211_sta.c @@ -2253,8 +2253,10 @@ static int ieee80211_sta_join_ibss(struct net_device *dev, sband = local->hw.wiphy->bands[local->hw.conf.channel->band]; + sdata = IEEE80211_DEV_TO_SUB_IF(dev); + /* Remove possible STA entries from other IBSS networks. */ - sta_info_flush(local, NULL); + sta_info_flush(local, sdata); if (local->ops->reset_tsf) { /* Reset own TSF to allow time synchronization work. */ @@ -2267,7 +2269,6 @@ static int ieee80211_sta_join_ibss(struct net_device *dev, local->hw.conf.beacon_int = bss->beacon_int >= 10 ? bss->beacon_int : 10; - sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata->drop_unencrypted = bss->capability & WLAN_CAPABILITY_PRIVACY ? 1 : 0;