aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl3945-base.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl3945-base.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 5436cb43bca7..f675b2993a3d 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -5720,7 +5720,6 @@ static void iwl3945_alive_start(struct iwl3945_priv *priv)
5720 if (priv->error_recovering) 5720 if (priv->error_recovering)
5721 iwl3945_error_recovery(priv); 5721 iwl3945_error_recovery(priv);
5722 5722
5723 ieee80211_notify_mac(priv->hw, IEEE80211_NOTIFY_RE_ASSOC);
5724 return; 5723 return;
5725 5724
5726 restart: 5725 restart:
@@ -5965,6 +5964,7 @@ static void iwl3945_bg_alive_start(struct work_struct *data)
5965 mutex_lock(&priv->mutex); 5964 mutex_lock(&priv->mutex);
5966 iwl3945_alive_start(priv); 5965 iwl3945_alive_start(priv);
5967 mutex_unlock(&priv->mutex); 5966 mutex_unlock(&priv->mutex);
5967 ieee80211_notify_mac(priv->hw, IEEE80211_NOTIFY_RE_ASSOC);
5968} 5968}
5969 5969
5970static void iwl3945_bg_rf_kill(struct work_struct *work) 5970static void iwl3945_bg_rf_kill(struct work_struct *work)
@@ -6209,6 +6209,11 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
6209 n_probes, 6209 n_probes,
6210 (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]); 6210 (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]);
6211 6211
6212 if (scan->channel_count == 0) {
6213 IWL_DEBUG_SCAN("channel count %d\n", scan->channel_count);
6214 goto done;
6215 }
6216
6212 cmd.len += le16_to_cpu(scan->tx_cmd.len) + 6217 cmd.len += le16_to_cpu(scan->tx_cmd.len) +
6213 scan->channel_count * sizeof(struct iwl3945_scan_channel); 6218 scan->channel_count * sizeof(struct iwl3945_scan_channel);
6214 cmd.data = scan; 6219 cmd.data = scan;
@@ -6226,6 +6231,14 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
6226 return; 6231 return;
6227 6232
6228 done: 6233 done:
6234 /* can not perform scan make sure we clear scanning
6235 * bits from status so next scan request can be performed.
6236 * if we dont clear scanning status bit here all next scan
6237 * will fail
6238 */
6239 clear_bit(STATUS_SCAN_HW, &priv->status);
6240 clear_bit(STATUS_SCANNING, &priv->status);
6241
6229 /* inform mac80211 scan aborted */ 6242 /* inform mac80211 scan aborted */
6230 queue_work(priv->workqueue, &priv->scan_completed); 6243 queue_work(priv->workqueue, &priv->scan_completed);
6231 mutex_unlock(&priv->mutex); 6244 mutex_unlock(&priv->mutex);