summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorReinette Chatre <reinette.chatre@intel.com>2009-10-19 14:55:37 -0700
committerJohn W. Linville <linville@tuxdriver.com>2009-10-27 16:29:46 -0400
commitd419b9f0fa69e79ccba3e5e79a58a52ae0c2ed6a (patch)
tree9437f790f07c46a645b867871e81a71dc1058749 /net
parente6693eab351fc19809e76167cd18a6f028661e8a (diff)
downloadlinux-3.10-d419b9f0fa69e79ccba3e5e79a58a52ae0c2ed6a.tar.gz
linux-3.10-d419b9f0fa69e79ccba3e5e79a58a52ae0c2ed6a.tar.bz2
linux-3.10-d419b9f0fa69e79ccba3e5e79a58a52ae0c2ed6a.zip
mac80211: fix ibss joining
Recent commit "mac80211: fix logic error ibss merge bssid check" fixed joining of ibss cell when static bssid is provided. In this case ifibss->bssid is set before the cell is joined and comparing that address to a bss should thus always succeed. Unfortunately this change broke the other case of joining a ibss cell without providing a static bssid where the value of ifibss->bssid is not set before the cell is joined. Since ifibss->bssid may be set before or after joining the cell we do not learn anything by comparing it to a known bss. Remove this check. Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/ibss.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index 6eaf6982343..ca8ecce31d3 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -538,13 +538,12 @@ static void ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata)
WLAN_CAPABILITY_PRIVACY,
capability);
+ if (bss) {
#ifdef CONFIG_MAC80211_IBSS_DEBUG
- if (bss)
printk(KERN_DEBUG " sta_find_ibss: selected %pM current "
"%pM\n", bss->cbss.bssid, ifibss->bssid);
#endif /* CONFIG_MAC80211_IBSS_DEBUG */
- if (bss && !memcmp(ifibss->bssid, bss->cbss.bssid, ETH_ALEN)) {
printk(KERN_DEBUG "%s: Selected IBSS BSSID %pM"
" based on configured SSID\n",
sdata->dev->name, bss->cbss.bssid);
@@ -552,8 +551,7 @@ static void ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata)
ieee80211_sta_join_ibss(sdata, bss);
ieee80211_rx_bss_put(local, bss);
return;
- } else if (bss)
- ieee80211_rx_bss_put(local, bss);
+ }
#ifdef CONFIG_MAC80211_IBSS_DEBUG
printk(KERN_DEBUG " did not try to join ibss\n");