Updated to 2.6.32.27
/drivers/net/wireless/iwlwifi/iwl-scan.c
blob:faa286ff69391e0e1ca7de8a5a771fb7ed71fc03 -> blob:db2946e0df5435d6675c4eb7edefea24993af644
--- drivers/net/wireless/iwlwifi/iwl-scan.c
+++ drivers/net/wireless/iwlwifi/iwl-scan.c
@@ -497,10 +497,11 @@ void iwl_bg_scan_check(struct work_struc
return;
mutex_lock(&priv->mutex);
- if (test_bit(STATUS_SCANNING, &priv->status) &&
- !test_bit(STATUS_SCAN_ABORTING, &priv->status)) {
- IWL_DEBUG_SCAN(priv, "Scan completion watchdog (%dms)\n",
- jiffies_to_msecs(IWL_SCAN_CHECK_WATCHDOG));
+ if (test_bit(STATUS_SCANNING, &priv->status) ||
+ test_bit(STATUS_SCAN_ABORTING, &priv->status)) {
+ IWL_DEBUG_SCAN(priv, "Scan completion watchdog resetting "
+ "adapter (%dms)\n",
+ jiffies_to_msecs(IWL_SCAN_CHECK_WATCHDOG));
if (!test_bit(STATUS_EXIT_PENDING, &priv->status))
iwl_send_scan_abort(priv);
@@ -796,11 +797,12 @@ void iwl_bg_abort_scan(struct work_struc
!test_bit(STATUS_GEO_CONFIGURED, &priv->status))
return;
- cancel_delayed_work(&priv->scan_check);
-
mutex_lock(&priv->mutex);
- if (test_bit(STATUS_SCAN_ABORTING, &priv->status))
- iwl_send_scan_abort(priv);
+
+ cancel_delayed_work_sync(&priv->scan_check);
+ set_bit(STATUS_SCAN_ABORTING, &priv->status);
+ iwl_send_scan_abort(priv);
+
mutex_unlock(&priv->mutex);
}
EXPORT_SYMBOL(iwl_bg_abort_scan);