diff options
author | Mohamed Abbas <mohamed.abbas@intel.com> | 2008-10-24 08:48:54 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-11-06 22:37:08 +0100 |
commit | 502c12e1ef14967e08dabb04c674cf0f000e8f7e (patch) | |
tree | 151e5105d484787e648a2ee97bebfcde4aebfa50 | |
parent | Revert "ath5k: honor FIF_BCN_PRBRESP_PROMISC in STA mode" (diff) | |
download | linux-502c12e1ef14967e08dabb04c674cf0f000e8f7e.tar.xz linux-502c12e1ef14967e08dabb04c674cf0f000e8f7e.zip |
iwlwifi: clear scanning bits upon failure
In iwl_bg_request_scan function, if we could not send a
scan command it will go to done.
In done it does the right thing to call mac80211 with
scan complete, but the problem is STATUS_SCAN_HW is still
set causing any future scan to fail. Fix by clearing the scanning status
bits if scan fails.
Signed-off-by: Mohamed Abbas <mohamed.abbas@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-scan.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c index 3b0bee331a33..c89365e2ca58 100644 --- a/drivers/net/wireless/iwlwifi/iwl-scan.c +++ b/drivers/net/wireless/iwlwifi/iwl-scan.c @@ -896,6 +896,13 @@ static void iwl_bg_request_scan(struct work_struct *data) return; done: + /* Cannot perform scan. Make sure we clear scanning + * bits from status so next scan request can be performed. + * If we don't clear scanning status bit here all next scan + * will fail + */ + clear_bit(STATUS_SCAN_HW, &priv->status); + clear_bit(STATUS_SCANNING, &priv->status); /* inform mac80211 scan aborted */ queue_work(priv->workqueue, &priv->scan_completed); mutex_unlock(&priv->mutex); |