aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-scan.c
diff options
context:
space:
mode:
authorMohamed Abbas <mohamed.abbas@intel.com>2008-10-24 02:48:54 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-10-31 19:02:26 -0400
commit951891c7ef844919d30aac7b1fc7396fd8be23ff (patch)
tree3e8c8ba5808265c682104038f0b895451729dc7e /drivers/net/wireless/iwlwifi/iwl-scan.c
parent60d32215a94ebba2517b8d92612200ab610943fd (diff)
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>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-scan.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-scan.c7
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 3379b41fb5ee..b0abf891516f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-scan.c
+++ b/drivers/net/wireless/iwlwifi/iwl-scan.c
@@ -834,6 +834,13 @@ static void iwl_bg_request_scan(struct work_struct *data)
834 return; 834 return;
835 835
836 done: 836 done:
837 /* Cannot perform scan. Make sure we clear scanning
838 * bits from status so next scan request can be performed.
839 * If we don't clear scanning status bit here all next scan
840 * will fail
841 */
842 clear_bit(STATUS_SCAN_HW, &priv->status);
843 clear_bit(STATUS_SCANNING, &priv->status);
837 /* inform mac80211 scan aborted */ 844 /* inform mac80211 scan aborted */
838 queue_work(priv->workqueue, &priv->scan_completed); 845 queue_work(priv->workqueue, &priv->scan_completed);
839 mutex_unlock(&priv->mutex); 846 mutex_unlock(&priv->mutex);