Loading drivers/net/wireless/ath5k/base.c +3 −1 Original line number Original line Diff line number Diff line Loading @@ -2942,8 +2942,10 @@ static void ath5k_configure_filter(struct ieee80211_hw *hw, sc->opmode != NL80211_IFTYPE_MESH_POINT && sc->opmode != NL80211_IFTYPE_MESH_POINT && test_bit(ATH_STAT_PROMISC, sc->status)) test_bit(ATH_STAT_PROMISC, sc->status)) rfilt |= AR5K_RX_FILTER_PROM; rfilt |= AR5K_RX_FILTER_PROM; if (sc->opmode == NL80211_IFTYPE_ADHOC) if (sc->opmode == NL80211_IFTYPE_STATION || sc->opmode == NL80211_IFTYPE_ADHOC) { rfilt |= AR5K_RX_FILTER_BEACON; rfilt |= AR5K_RX_FILTER_BEACON; } /* Set filters */ /* Set filters */ ath5k_hw_set_rx_filter(ah,rfilt); ath5k_hw_set_rx_filter(ah,rfilt); Loading drivers/net/wireless/ath5k/desc.c +8 −8 Original line number Original line Diff line number Diff line Loading @@ -531,10 +531,10 @@ static int ath5k_hw_proc_5210_rx_status(struct ath5k_hw *ah, AR5K_5210_RX_DESC_STATUS0_RECEIVE_SIGNAL); AR5K_5210_RX_DESC_STATUS0_RECEIVE_SIGNAL); rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0, rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0, AR5K_5210_RX_DESC_STATUS0_RECEIVE_RATE); AR5K_5210_RX_DESC_STATUS0_RECEIVE_RATE); rs->rs_antenna = rx_status->rx_status_0 & rs->rs_antenna = AR5K_REG_MS(rx_status->rx_status_0, AR5K_5210_RX_DESC_STATUS0_RECEIVE_ANTENNA; AR5K_5210_RX_DESC_STATUS0_RECEIVE_ANTENNA); rs->rs_more = rx_status->rx_status_0 & rs->rs_more = !!(rx_status->rx_status_0 & AR5K_5210_RX_DESC_STATUS0_MORE; AR5K_5210_RX_DESC_STATUS0_MORE); /* TODO: this timestamp is 13 bit, later on we assume 15 bit */ /* TODO: this timestamp is 13 bit, later on we assume 15 bit */ rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1, rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1, AR5K_5210_RX_DESC_STATUS1_RECEIVE_TIMESTAMP); AR5K_5210_RX_DESC_STATUS1_RECEIVE_TIMESTAMP); Loading Loading @@ -607,10 +607,10 @@ static int ath5k_hw_proc_5212_rx_status(struct ath5k_hw *ah, AR5K_5212_RX_DESC_STATUS0_RECEIVE_SIGNAL); AR5K_5212_RX_DESC_STATUS0_RECEIVE_SIGNAL); rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0, rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0, AR5K_5212_RX_DESC_STATUS0_RECEIVE_RATE); AR5K_5212_RX_DESC_STATUS0_RECEIVE_RATE); rs->rs_antenna = rx_status->rx_status_0 & rs->rs_antenna = AR5K_REG_MS(rx_status->rx_status_0, AR5K_5212_RX_DESC_STATUS0_RECEIVE_ANTENNA; AR5K_5212_RX_DESC_STATUS0_RECEIVE_ANTENNA); rs->rs_more = rx_status->rx_status_0 & rs->rs_more = !!(rx_status->rx_status_0 & AR5K_5212_RX_DESC_STATUS0_MORE; AR5K_5212_RX_DESC_STATUS0_MORE); rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1, rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1, AR5K_5212_RX_DESC_STATUS1_RECEIVE_TIMESTAMP); AR5K_5212_RX_DESC_STATUS1_RECEIVE_TIMESTAMP); rs->rs_status = 0; rs->rs_status = 0; Loading drivers/net/wireless/iwlwifi/iwl-agn.c +5 −1 Original line number Original line Diff line number Diff line Loading @@ -3252,7 +3252,11 @@ static void iwl4965_mac_update_tkip_key(struct ieee80211_hw *hw, return; return; } } iwl_scan_cancel_timeout(priv, 100); if (iwl_scan_cancel(priv)) { /* cancel scan failed, just live w/ bad key and rely briefly on SW decryption */ return; } key_flags |= (STA_KEY_FLG_TKIP | STA_KEY_FLG_MAP_KEY_MSK); key_flags |= (STA_KEY_FLG_TKIP | STA_KEY_FLG_MAP_KEY_MSK); key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS); key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS); Loading drivers/net/wireless/iwlwifi/iwl-scan.c +7 −0 Original line number Original line Diff line number Diff line Loading @@ -896,6 +896,13 @@ static void iwl_bg_request_scan(struct work_struct *data) return; return; done: 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 */ /* inform mac80211 scan aborted */ queue_work(priv->workqueue, &priv->scan_completed); queue_work(priv->workqueue, &priv->scan_completed); mutex_unlock(&priv->mutex); mutex_unlock(&priv->mutex); Loading drivers/net/wireless/iwlwifi/iwl3945-base.c +14 −1 Original line number Original line Diff line number Diff line Loading @@ -5768,7 +5768,6 @@ static void iwl3945_alive_start(struct iwl3945_priv *priv) if (priv->error_recovering) if (priv->error_recovering) iwl3945_error_recovery(priv); iwl3945_error_recovery(priv); ieee80211_notify_mac(priv->hw, IEEE80211_NOTIFY_RE_ASSOC); return; return; restart: restart: Loading Loading @@ -6013,6 +6012,7 @@ static void iwl3945_bg_alive_start(struct work_struct *data) mutex_lock(&priv->mutex); mutex_lock(&priv->mutex); iwl3945_alive_start(priv); iwl3945_alive_start(priv); mutex_unlock(&priv->mutex); mutex_unlock(&priv->mutex); ieee80211_notify_mac(priv->hw, IEEE80211_NOTIFY_RE_ASSOC); } } static void iwl3945_bg_rf_kill(struct work_struct *work) static void iwl3945_bg_rf_kill(struct work_struct *work) Loading Loading @@ -6256,6 +6256,11 @@ static void iwl3945_bg_request_scan(struct work_struct *data) n_probes, n_probes, (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]); (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]); if (scan->channel_count == 0) { IWL_DEBUG_SCAN("channel count %d\n", scan->channel_count); goto done; } cmd.len += le16_to_cpu(scan->tx_cmd.len) + cmd.len += le16_to_cpu(scan->tx_cmd.len) + scan->channel_count * sizeof(struct iwl3945_scan_channel); scan->channel_count * sizeof(struct iwl3945_scan_channel); cmd.data = scan; cmd.data = scan; Loading @@ -6273,6 +6278,14 @@ static void iwl3945_bg_request_scan(struct work_struct *data) return; return; done: done: /* can not perform scan make sure we clear scanning * bits from status so next scan request can be performed. * if we dont 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 */ /* inform mac80211 scan aborted */ queue_work(priv->workqueue, &priv->scan_completed); queue_work(priv->workqueue, &priv->scan_completed); mutex_unlock(&priv->mutex); mutex_unlock(&priv->mutex); Loading Loading
drivers/net/wireless/ath5k/base.c +3 −1 Original line number Original line Diff line number Diff line Loading @@ -2942,8 +2942,10 @@ static void ath5k_configure_filter(struct ieee80211_hw *hw, sc->opmode != NL80211_IFTYPE_MESH_POINT && sc->opmode != NL80211_IFTYPE_MESH_POINT && test_bit(ATH_STAT_PROMISC, sc->status)) test_bit(ATH_STAT_PROMISC, sc->status)) rfilt |= AR5K_RX_FILTER_PROM; rfilt |= AR5K_RX_FILTER_PROM; if (sc->opmode == NL80211_IFTYPE_ADHOC) if (sc->opmode == NL80211_IFTYPE_STATION || sc->opmode == NL80211_IFTYPE_ADHOC) { rfilt |= AR5K_RX_FILTER_BEACON; rfilt |= AR5K_RX_FILTER_BEACON; } /* Set filters */ /* Set filters */ ath5k_hw_set_rx_filter(ah,rfilt); ath5k_hw_set_rx_filter(ah,rfilt); Loading
drivers/net/wireless/ath5k/desc.c +8 −8 Original line number Original line Diff line number Diff line Loading @@ -531,10 +531,10 @@ static int ath5k_hw_proc_5210_rx_status(struct ath5k_hw *ah, AR5K_5210_RX_DESC_STATUS0_RECEIVE_SIGNAL); AR5K_5210_RX_DESC_STATUS0_RECEIVE_SIGNAL); rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0, rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0, AR5K_5210_RX_DESC_STATUS0_RECEIVE_RATE); AR5K_5210_RX_DESC_STATUS0_RECEIVE_RATE); rs->rs_antenna = rx_status->rx_status_0 & rs->rs_antenna = AR5K_REG_MS(rx_status->rx_status_0, AR5K_5210_RX_DESC_STATUS0_RECEIVE_ANTENNA; AR5K_5210_RX_DESC_STATUS0_RECEIVE_ANTENNA); rs->rs_more = rx_status->rx_status_0 & rs->rs_more = !!(rx_status->rx_status_0 & AR5K_5210_RX_DESC_STATUS0_MORE; AR5K_5210_RX_DESC_STATUS0_MORE); /* TODO: this timestamp is 13 bit, later on we assume 15 bit */ /* TODO: this timestamp is 13 bit, later on we assume 15 bit */ rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1, rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1, AR5K_5210_RX_DESC_STATUS1_RECEIVE_TIMESTAMP); AR5K_5210_RX_DESC_STATUS1_RECEIVE_TIMESTAMP); Loading Loading @@ -607,10 +607,10 @@ static int ath5k_hw_proc_5212_rx_status(struct ath5k_hw *ah, AR5K_5212_RX_DESC_STATUS0_RECEIVE_SIGNAL); AR5K_5212_RX_DESC_STATUS0_RECEIVE_SIGNAL); rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0, rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0, AR5K_5212_RX_DESC_STATUS0_RECEIVE_RATE); AR5K_5212_RX_DESC_STATUS0_RECEIVE_RATE); rs->rs_antenna = rx_status->rx_status_0 & rs->rs_antenna = AR5K_REG_MS(rx_status->rx_status_0, AR5K_5212_RX_DESC_STATUS0_RECEIVE_ANTENNA; AR5K_5212_RX_DESC_STATUS0_RECEIVE_ANTENNA); rs->rs_more = rx_status->rx_status_0 & rs->rs_more = !!(rx_status->rx_status_0 & AR5K_5212_RX_DESC_STATUS0_MORE; AR5K_5212_RX_DESC_STATUS0_MORE); rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1, rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1, AR5K_5212_RX_DESC_STATUS1_RECEIVE_TIMESTAMP); AR5K_5212_RX_DESC_STATUS1_RECEIVE_TIMESTAMP); rs->rs_status = 0; rs->rs_status = 0; Loading
drivers/net/wireless/iwlwifi/iwl-agn.c +5 −1 Original line number Original line Diff line number Diff line Loading @@ -3252,7 +3252,11 @@ static void iwl4965_mac_update_tkip_key(struct ieee80211_hw *hw, return; return; } } iwl_scan_cancel_timeout(priv, 100); if (iwl_scan_cancel(priv)) { /* cancel scan failed, just live w/ bad key and rely briefly on SW decryption */ return; } key_flags |= (STA_KEY_FLG_TKIP | STA_KEY_FLG_MAP_KEY_MSK); key_flags |= (STA_KEY_FLG_TKIP | STA_KEY_FLG_MAP_KEY_MSK); key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS); key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS); Loading
drivers/net/wireless/iwlwifi/iwl-scan.c +7 −0 Original line number Original line Diff line number Diff line Loading @@ -896,6 +896,13 @@ static void iwl_bg_request_scan(struct work_struct *data) return; return; done: 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 */ /* inform mac80211 scan aborted */ queue_work(priv->workqueue, &priv->scan_completed); queue_work(priv->workqueue, &priv->scan_completed); mutex_unlock(&priv->mutex); mutex_unlock(&priv->mutex); Loading
drivers/net/wireless/iwlwifi/iwl3945-base.c +14 −1 Original line number Original line Diff line number Diff line Loading @@ -5768,7 +5768,6 @@ static void iwl3945_alive_start(struct iwl3945_priv *priv) if (priv->error_recovering) if (priv->error_recovering) iwl3945_error_recovery(priv); iwl3945_error_recovery(priv); ieee80211_notify_mac(priv->hw, IEEE80211_NOTIFY_RE_ASSOC); return; return; restart: restart: Loading Loading @@ -6013,6 +6012,7 @@ static void iwl3945_bg_alive_start(struct work_struct *data) mutex_lock(&priv->mutex); mutex_lock(&priv->mutex); iwl3945_alive_start(priv); iwl3945_alive_start(priv); mutex_unlock(&priv->mutex); mutex_unlock(&priv->mutex); ieee80211_notify_mac(priv->hw, IEEE80211_NOTIFY_RE_ASSOC); } } static void iwl3945_bg_rf_kill(struct work_struct *work) static void iwl3945_bg_rf_kill(struct work_struct *work) Loading Loading @@ -6256,6 +6256,11 @@ static void iwl3945_bg_request_scan(struct work_struct *data) n_probes, n_probes, (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]); (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]); if (scan->channel_count == 0) { IWL_DEBUG_SCAN("channel count %d\n", scan->channel_count); goto done; } cmd.len += le16_to_cpu(scan->tx_cmd.len) + cmd.len += le16_to_cpu(scan->tx_cmd.len) + scan->channel_count * sizeof(struct iwl3945_scan_channel); scan->channel_count * sizeof(struct iwl3945_scan_channel); cmd.data = scan; cmd.data = scan; Loading @@ -6273,6 +6278,14 @@ static void iwl3945_bg_request_scan(struct work_struct *data) return; return; done: done: /* can not perform scan make sure we clear scanning * bits from status so next scan request can be performed. * if we dont 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 */ /* inform mac80211 scan aborted */ queue_work(priv->workqueue, &priv->scan_completed); queue_work(priv->workqueue, &priv->scan_completed); mutex_unlock(&priv->mutex); mutex_unlock(&priv->mutex); Loading