summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorNicolas Cavallari <Nicolas.Cavallari@lri.fr>2012-01-26 13:36:34 +0100
committerJohn W. Linville <linville@tuxdriver.com>2012-01-27 14:57:06 -0500
commitf1e3be1561c43b6bbe2426e34849fb1486dc313b (patch)
treedc0975fc229b57658cac34ed90e56cd7ccf6b822 /net
parent6e1b1b246096fe04467f928973487fa47afaf2cc (diff)
downloadlinux-f1e3be1561c43b6bbe2426e34849fb1486dc313b.tar.gz
linux-f1e3be1561c43b6bbe2426e34849fb1486dc313b.tar.bz2
linux-f1e3be1561c43b6bbe2426e34849fb1486dc313b.zip
mac80211: Do not scan for IBSS merge with a fixed BSSID.
Currently, when we are on an IBSS network with no active station, we would scan for other BSSID, even if fixed_bssid is on, due to a bug in ibss.c, where fixed_channel would be checked instead of fixed_bssid. This would trigger useless scans where scan results would not be used anyway. This patch also reverts commit 39d02a7d90602d4557ee05db2a157a4e0, which assumed that the ifibss->fixed_channel check was legitimate to disable single-channel scans. IBSS single-channel scan should now be fixed. Signed-off-by: Nicolas Cavallari <cavallar@lri.fr> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/ibss.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index d38baa41cf6c..93b3c7298be3 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -655,14 +655,15 @@ static void ieee80211_sta_merge_ibss(struct ieee80211_sub_if_data *sdata)
if (ieee80211_sta_active_ibss(sdata))
return;
- if (ifibss->fixed_channel)
+ if (ifibss->fixed_bssid)
return;
printk(KERN_DEBUG "%s: No active IBSS STAs - trying to scan for other "
"IBSS networks with same SSID (merge)\n", sdata->name);
ieee80211_request_internal_scan(sdata,
- ifibss->ssid, ifibss->ssid_len, NULL);
+ ifibss->ssid, ifibss->ssid_len,
+ ifibss->fixed_channel ? ifibss->channel : NULL);
}
static void ieee80211_sta_create_ibss(struct ieee80211_sub_if_data *sdata)