diff options
author | Nicolas Cavallari <Nicolas.Cavallari@lri.fr> | 2012-01-26 07:36:34 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-01-27 14:57:06 -0500 |
commit | f1e3be1561c43b6bbe2426e34849fb1486dc313b (patch) | |
tree | dc0975fc229b57658cac34ed90e56cd7ccf6b822 /net/mac80211/ibss.c | |
parent | 6e1b1b246096fe04467f928973487fa47afaf2cc (diff) |
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/mac80211/ibss.c')
-rw-r--r-- | net/mac80211/ibss.c | 5 |
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) | |||
655 | if (ieee80211_sta_active_ibss(sdata)) | 655 | if (ieee80211_sta_active_ibss(sdata)) |
656 | return; | 656 | return; |
657 | 657 | ||
658 | if (ifibss->fixed_channel) | 658 | if (ifibss->fixed_bssid) |
659 | return; | 659 | return; |
660 | 660 | ||
661 | printk(KERN_DEBUG "%s: No active IBSS STAs - trying to scan for other " | 661 | printk(KERN_DEBUG "%s: No active IBSS STAs - trying to scan for other " |
662 | "IBSS networks with same SSID (merge)\n", sdata->name); | 662 | "IBSS networks with same SSID (merge)\n", sdata->name); |
663 | 663 | ||
664 | ieee80211_request_internal_scan(sdata, | 664 | ieee80211_request_internal_scan(sdata, |
665 | ifibss->ssid, ifibss->ssid_len, NULL); | 665 | ifibss->ssid, ifibss->ssid_len, |
666 | ifibss->fixed_channel ? ifibss->channel : NULL); | ||
666 | } | 667 | } |
667 | 668 | ||
668 | static void ieee80211_sta_create_ibss(struct ieee80211_sub_if_data *sdata) | 669 | static void ieee80211_sta_create_ibss(struct ieee80211_sub_if_data *sdata) |