diff options
author | Alina Friedrichsen <x-alina@gmx.net> | 2009-01-29 03:59:43 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-02-09 15:03:39 -0500 |
commit | c0415b547d37e8065ad4adf289d11db2f3b16dfd (patch) | |
tree | d41465a61ecfaece86102fad50b0fb704f06da9e /net/mac80211 | |
parent | 547c3763765654f9a796e628692d9e7d5c1039af (diff) |
mac80211: Creating new IBSS with fixed BSSID
This fixes a bug when creating a new IBSS network with a
fixed BSSID. The fixed BSSID situation is now with one of
my last patches handled in ieee80211_sta_find_ibss()
function.
It's more robust to test against
(ifsta->flags & IEEE80211_STA_PREV_BSSID_SET), because
ifsta->state is not seted right in every situation and so
the creating of the new IBSS network sometimes hangs after
the first try to scan for a network to merge.
Signed-off-by: Alina Friedrichsen <x-alina@gmx.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/mlme.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index a8755df0cf74..0ece151659c0 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -2722,9 +2722,8 @@ void ieee80211_mlme_notify_scan_completed(struct ieee80211_local *local) | |||
2722 | 2722 | ||
2723 | if (sdata && sdata->vif.type == NL80211_IFTYPE_ADHOC) { | 2723 | if (sdata && sdata->vif.type == NL80211_IFTYPE_ADHOC) { |
2724 | ifsta = &sdata->u.sta; | 2724 | ifsta = &sdata->u.sta; |
2725 | if (!(ifsta->flags & IEEE80211_STA_BSSID_SET) || | 2725 | if ((!(ifsta->flags & IEEE80211_STA_PREV_BSSID_SET)) || |
2726 | (!(ifsta->state == IEEE80211_STA_MLME_IBSS_JOINED) && | 2726 | !ieee80211_sta_active_ibss(sdata)) |
2727 | !ieee80211_sta_active_ibss(sdata))) | ||
2728 | ieee80211_sta_find_ibss(sdata, ifsta); | 2727 | ieee80211_sta_find_ibss(sdata, ifsta); |
2729 | } | 2728 | } |
2730 | 2729 | ||