diff options
author | Stanislaw Gruszka <sgruszka@redhat.com> | 2010-09-13 08:46:41 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-09-14 16:14:25 -0400 |
commit | e7e16b90b477a07d17af37dceb2e8af1ddbd9712 (patch) | |
tree | c7f58d181d8a0a06718d2e28c9e88c4653204a24 /drivers/net/wireless/iwlwifi/iwl-core.c | |
parent | 6bd1758d978f917dc0804f44e3528ef1a80d9d43 (diff) |
iwlwifi: do not force complete scan too early
Currently we force scan complete at the end of iwl_scan_cancel_timeout
function. This cause race condition when we can get a new scan request
from mac80211 and complete it by iwl_bg_complete from older scan. Change
code to force scan complete only when really needed: device goes down,
interface is removed or scan timeout occurs.
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Wey-Yi W Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-core.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c index b04a4f81ee97..393f02d94c4e 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c | |||
@@ -2089,8 +2089,10 @@ void iwl_mac_remove_interface(struct ieee80211_hw *hw, | |||
2089 | WARN_ON(ctx->vif != vif); | 2089 | WARN_ON(ctx->vif != vif); |
2090 | ctx->vif = NULL; | 2090 | ctx->vif = NULL; |
2091 | 2091 | ||
2092 | if (priv->scan_vif == vif) | 2092 | if (priv->scan_vif == vif) { |
2093 | iwl_scan_cancel_timeout(priv, 100); | 2093 | iwl_scan_cancel_timeout(priv, 200); |
2094 | iwl_force_scan_end(priv); | ||
2095 | } | ||
2094 | iwl_set_mode(priv, vif); | 2096 | iwl_set_mode(priv, vif); |
2095 | 2097 | ||
2096 | if (!ctx->always_active) | 2098 | if (!ctx->always_active) |