aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorStanislaw Gruszka <sgruszka@redhat.com>2012-03-15 06:42:49 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-03-26 15:07:24 -0400
commite92109be7a6a04808c3ed586475ba1e5ea56ecbd (patch)
treef645afc60ba1ea9f33a9696b919de4c846aab484 /drivers/net/wireless
parent2ee0a07028d2cde6e131b73f029dae2b93c50f3a (diff)
iwlegacy: fix BSSID setting
Current commit 0775f9f90cdaf40fbf69b3192b3dddb2b3436f45 "mac80211: remove spurious BSSID change flag" exposed bug on iwlegacy, that we do not set BSSID address correctly and then device was not able to receive frames after successful associate. On the way fix scan canceling comment. Apparently ->post_associate() do cancel scan itself, but scan cancel on BSS_CHANGED_BSSID is needed. I'm not sure why, but when I removed it, I had frequent auth failures: wlan4: send auth to 54:e6:fc:98:63:fe (try 1/3) wlan4: send auth to 54:e6:fc:98:63:fe (try 2/3) wlan4: send auth to 54:e6:fc:98:63:fe (try 3/3) wlan4: authentication with 54:e6:fc:98:63:fe timed out Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/iwlegacy/common.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/net/wireless/iwlegacy/common.c b/drivers/net/wireless/iwlegacy/common.c
index 6a692a534ff..eaf249452e5 100644
--- a/drivers/net/wireless/iwlegacy/common.c
+++ b/drivers/net/wireless/iwlegacy/common.c
@@ -5288,9 +5288,9 @@ il_mac_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
5288 D_MAC80211("BSSID %pM\n", bss_conf->bssid); 5288 D_MAC80211("BSSID %pM\n", bss_conf->bssid);
5289 5289
5290 /* 5290 /*
5291 * If there is currently a HW scan going on in the 5291 * If there is currently a HW scan going on in the background,
5292 * background then we need to cancel it else the RXON 5292 * then we need to cancel it, otherwise sometimes we are not
5293 * below/in post_associate will fail. 5293 * able to authenticate (FIXME: why ?)
5294 */ 5294 */
5295 if (il_scan_cancel_timeout(il, 100)) { 5295 if (il_scan_cancel_timeout(il, 100)) {
5296 D_MAC80211("leave - scan abort failed\n"); 5296 D_MAC80211("leave - scan abort failed\n");
@@ -5299,14 +5299,10 @@ il_mac_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
5299 } 5299 }
5300 5300
5301 /* mac80211 only sets assoc when in STATION mode */ 5301 /* mac80211 only sets assoc when in STATION mode */
5302 if (vif->type == NL80211_IFTYPE_ADHOC || bss_conf->assoc) { 5302 memcpy(il->staging.bssid_addr, bss_conf->bssid, ETH_ALEN);
5303 memcpy(il->staging.bssid_addr, bss_conf->bssid,
5304 ETH_ALEN);
5305 5303
5306 /* currently needed in a few places */ 5304 /* FIXME: currently needed in a few places */
5307 memcpy(il->bssid, bss_conf->bssid, ETH_ALEN); 5305 memcpy(il->bssid, bss_conf->bssid, ETH_ALEN);
5308 } else
5309 il->staging.filter_flags &= ~RXON_FILTER_ASSOC_MSK;
5310 } 5306 }
5311 5307
5312 /* 5308 /*