aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-11-07 01:43:03 -0500
committerDavid S. Miller <davem@davemloft.net>2008-11-07 01:43:03 -0500
commit9eeda9abd1faf489f3df9a1f557975f4c8650363 (patch)
tree3e0a58e25b776cfbee193195460324dccb1886c7 /drivers/net/wireless
parent61c9eaf90081cbe6dc4f389e0056bff76eca19ec (diff)
parent4bab0ea1d42dd1927af9df6fbf0003fc00617c50 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/wireless/ath5k/base.c net/8021q/vlan_core.c
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/ath5k/base.c4
-rw-r--r--drivers/net/wireless/ath5k/desc.c16
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c6
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c15
-rw-r--r--drivers/net/wireless/zd1211rw/zd_usb.c2
5 files changed, 32 insertions, 11 deletions
diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c
index 7ac5f2847da5..6f368e8cdf17 100644
--- a/drivers/net/wireless/ath5k/base.c
+++ b/drivers/net/wireless/ath5k/base.c
@@ -2949,8 +2949,10 @@ static void ath5k_configure_filter(struct ieee80211_hw *hw,
2949 sc->opmode != NL80211_IFTYPE_MESH_POINT && 2949 sc->opmode != NL80211_IFTYPE_MESH_POINT &&
2950 test_bit(ATH_STAT_PROMISC, sc->status)) 2950 test_bit(ATH_STAT_PROMISC, sc->status))
2951 rfilt |= AR5K_RX_FILTER_PROM; 2951 rfilt |= AR5K_RX_FILTER_PROM;
2952 if (sc->opmode == NL80211_IFTYPE_ADHOC) 2952 if (sc->opmode == NL80211_IFTYPE_STATION ||
2953 sc->opmode == NL80211_IFTYPE_ADHOC) {
2953 rfilt |= AR5K_RX_FILTER_BEACON; 2954 rfilt |= AR5K_RX_FILTER_BEACON;
2955 }
2954 if (sc->opmode == NL80211_IFTYPE_MESH_POINT) 2956 if (sc->opmode == NL80211_IFTYPE_MESH_POINT)
2955 rfilt |= AR5K_RX_FILTER_CONTROL | AR5K_RX_FILTER_BEACON | 2957 rfilt |= AR5K_RX_FILTER_CONTROL | AR5K_RX_FILTER_BEACON |
2956 AR5K_RX_FILTER_PROBEREQ | AR5K_RX_FILTER_PROM; 2958 AR5K_RX_FILTER_PROBEREQ | AR5K_RX_FILTER_PROM;
diff --git a/drivers/net/wireless/ath5k/desc.c b/drivers/net/wireless/ath5k/desc.c
index dd1374052ba9..5e362a7a3620 100644
--- a/drivers/net/wireless/ath5k/desc.c
+++ b/drivers/net/wireless/ath5k/desc.c
@@ -531,10 +531,10 @@ static int ath5k_hw_proc_5210_rx_status(struct ath5k_hw *ah,
531 AR5K_5210_RX_DESC_STATUS0_RECEIVE_SIGNAL); 531 AR5K_5210_RX_DESC_STATUS0_RECEIVE_SIGNAL);
532 rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0, 532 rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0,
533 AR5K_5210_RX_DESC_STATUS0_RECEIVE_RATE); 533 AR5K_5210_RX_DESC_STATUS0_RECEIVE_RATE);
534 rs->rs_antenna = rx_status->rx_status_0 & 534 rs->rs_antenna = AR5K_REG_MS(rx_status->rx_status_0,
535 AR5K_5210_RX_DESC_STATUS0_RECEIVE_ANTENNA; 535 AR5K_5210_RX_DESC_STATUS0_RECEIVE_ANTENNA);
536 rs->rs_more = rx_status->rx_status_0 & 536 rs->rs_more = !!(rx_status->rx_status_0 &
537 AR5K_5210_RX_DESC_STATUS0_MORE; 537 AR5K_5210_RX_DESC_STATUS0_MORE);
538 /* TODO: this timestamp is 13 bit, later on we assume 15 bit */ 538 /* TODO: this timestamp is 13 bit, later on we assume 15 bit */
539 rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1, 539 rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1,
540 AR5K_5210_RX_DESC_STATUS1_RECEIVE_TIMESTAMP); 540 AR5K_5210_RX_DESC_STATUS1_RECEIVE_TIMESTAMP);
@@ -607,10 +607,10 @@ static int ath5k_hw_proc_5212_rx_status(struct ath5k_hw *ah,
607 AR5K_5212_RX_DESC_STATUS0_RECEIVE_SIGNAL); 607 AR5K_5212_RX_DESC_STATUS0_RECEIVE_SIGNAL);
608 rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0, 608 rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0,
609 AR5K_5212_RX_DESC_STATUS0_RECEIVE_RATE); 609 AR5K_5212_RX_DESC_STATUS0_RECEIVE_RATE);
610 rs->rs_antenna = rx_status->rx_status_0 & 610 rs->rs_antenna = AR5K_REG_MS(rx_status->rx_status_0,
611 AR5K_5212_RX_DESC_STATUS0_RECEIVE_ANTENNA; 611 AR5K_5212_RX_DESC_STATUS0_RECEIVE_ANTENNA);
612 rs->rs_more = rx_status->rx_status_0 & 612 rs->rs_more = !!(rx_status->rx_status_0 &
613 AR5K_5212_RX_DESC_STATUS0_MORE; 613 AR5K_5212_RX_DESC_STATUS0_MORE);
614 rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1, 614 rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1,
615 AR5K_5212_RX_DESC_STATUS1_RECEIVE_TIMESTAMP); 615 AR5K_5212_RX_DESC_STATUS1_RECEIVE_TIMESTAMP);
616 rs->rs_status = 0; 616 rs->rs_status = 0;
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 82e98b4602c5..2c35a017e5f6 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -3237,7 +3237,11 @@ static void iwl4965_mac_update_tkip_key(struct ieee80211_hw *hw,
3237 return; 3237 return;
3238 } 3238 }
3239 3239
3240 iwl_scan_cancel_timeout(priv, 100); 3240 if (iwl_scan_cancel(priv)) {
3241 /* cancel scan failed, just live w/ bad key and rely
3242 briefly on SW decryption */
3243 return;
3244 }
3241 3245
3242 key_flags |= (STA_KEY_FLG_TKIP | STA_KEY_FLG_MAP_KEY_MSK); 3246 key_flags |= (STA_KEY_FLG_TKIP | STA_KEY_FLG_MAP_KEY_MSK);
3243 key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS); 3247 key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
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);
diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c
index d7a2f52e40cf..04c139666965 100644
--- a/drivers/net/wireless/zd1211rw/zd_usb.c
+++ b/drivers/net/wireless/zd1211rw/zd_usb.c
@@ -61,6 +61,7 @@ static struct usb_device_id usb_ids[] = {
61 { USB_DEVICE(0x0105, 0x145f), .driver_info = DEVICE_ZD1211 }, 61 { USB_DEVICE(0x0105, 0x145f), .driver_info = DEVICE_ZD1211 },
62 /* ZD1211B */ 62 /* ZD1211B */
63 { USB_DEVICE(0x0ace, 0x1215), .driver_info = DEVICE_ZD1211B }, 63 { USB_DEVICE(0x0ace, 0x1215), .driver_info = DEVICE_ZD1211B },
64 { USB_DEVICE(0x0ace, 0xb215), .driver_info = DEVICE_ZD1211B },
64 { USB_DEVICE(0x157e, 0x300d), .driver_info = DEVICE_ZD1211B }, 65 { USB_DEVICE(0x157e, 0x300d), .driver_info = DEVICE_ZD1211B },
65 { USB_DEVICE(0x079b, 0x0062), .driver_info = DEVICE_ZD1211B }, 66 { USB_DEVICE(0x079b, 0x0062), .driver_info = DEVICE_ZD1211B },
66 { USB_DEVICE(0x1582, 0x6003), .driver_info = DEVICE_ZD1211B }, 67 { USB_DEVICE(0x1582, 0x6003), .driver_info = DEVICE_ZD1211B },
@@ -82,6 +83,7 @@ static struct usb_device_id usb_ids[] = {
82 { USB_DEVICE(0x0cde, 0x001a), .driver_info = DEVICE_ZD1211B }, 83 { USB_DEVICE(0x0cde, 0x001a), .driver_info = DEVICE_ZD1211B },
83 { USB_DEVICE(0x0586, 0x340a), .driver_info = DEVICE_ZD1211B }, 84 { USB_DEVICE(0x0586, 0x340a), .driver_info = DEVICE_ZD1211B },
84 { USB_DEVICE(0x0471, 0x1237), .driver_info = DEVICE_ZD1211B }, 85 { USB_DEVICE(0x0471, 0x1237), .driver_info = DEVICE_ZD1211B },
86 { USB_DEVICE(0x07fa, 0x1196), .driver_info = DEVICE_ZD1211B },
85 /* "Driverless" devices that need ejecting */ 87 /* "Driverless" devices that need ejecting */
86 { USB_DEVICE(0x0ace, 0x2011), .driver_info = DEVICE_INSTALLER }, 88 { USB_DEVICE(0x0ace, 0x2011), .driver_info = DEVICE_INSTALLER },
87 { USB_DEVICE(0x0ace, 0x20ff), .driver_info = DEVICE_INSTALLER }, 89 { USB_DEVICE(0x0ace, 0x20ff), .driver_info = DEVICE_INSTALLER },