diff options
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/iwlwifi/Kconfig | 3 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965-rs.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/prism54/islpci_dev.c | 11 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00dev.c | 11 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00pci.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt61pci.c | 31 | ||||
-rw-r--r-- | drivers/net/wireless/strip.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/wavelan.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/wavelan_cs.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_usb.c | 6 |
12 files changed, 41 insertions, 44 deletions
diff --git a/drivers/net/wireless/iwlwifi/Kconfig b/drivers/net/wireless/iwlwifi/Kconfig index 193e48f3ed51..5f3e849043f7 100644 --- a/drivers/net/wireless/iwlwifi/Kconfig +++ b/drivers/net/wireless/iwlwifi/Kconfig | |||
@@ -1,6 +1,5 @@ | |||
1 | config IWLWIFI | 1 | config IWLWIFI |
2 | bool | 2 | tristate |
3 | default n | ||
4 | 3 | ||
5 | config IWLCORE | 4 | config IWLCORE |
6 | tristate "Intel Wireless Wifi Core" | 5 | tristate "Intel Wireless Wifi Core" |
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c index d7beeff2642c..ad4e7b74ca24 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.c +++ b/drivers/net/wireless/iwlwifi/iwl-3945.c | |||
@@ -666,7 +666,7 @@ static void iwl3945_rx_reply_rx(struct iwl3945_priv *priv, | |||
666 | rx_status.flag = 0; | 666 | rx_status.flag = 0; |
667 | rx_status.mactime = le64_to_cpu(rx_end->timestamp); | 667 | rx_status.mactime = le64_to_cpu(rx_end->timestamp); |
668 | rx_status.freq = | 668 | rx_status.freq = |
669 | ieee80211_frequency_to_channel(le16_to_cpu(rx_hdr->channel)); | 669 | ieee80211_channel_to_frequency(le16_to_cpu(rx_hdr->channel)); |
670 | rx_status.band = (rx_hdr->phy_flags & RX_RES_PHY_FLAGS_BAND_24_MSK) ? | 670 | rx_status.band = (rx_hdr->phy_flags & RX_RES_PHY_FLAGS_BAND_24_MSK) ? |
671 | IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ; | 671 | IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ; |
672 | 672 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c b/drivers/net/wireless/iwlwifi/iwl-4965-rs.c index 5baa000c7887..8e3660ebba7d 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965-rs.c | |||
@@ -168,8 +168,8 @@ struct iwl4965_lq_sta { | |||
168 | struct dentry *rs_sta_dbgfs_tx_agg_tid_en_file; | 168 | struct dentry *rs_sta_dbgfs_tx_agg_tid_en_file; |
169 | #endif | 169 | #endif |
170 | u32 dbg_fixed_rate; | 170 | u32 dbg_fixed_rate; |
171 | struct iwl_priv *drv; | ||
172 | #endif | 171 | #endif |
172 | struct iwl_priv *drv; | ||
173 | }; | 173 | }; |
174 | 174 | ||
175 | static void rs_rate_scale_perform(struct iwl_priv *priv, | 175 | static void rs_rate_scale_perform(struct iwl_priv *priv, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c index 45cbd7789bd0..17847f981e11 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965.c | |||
@@ -2905,7 +2905,7 @@ static void iwl4965_rx_reply_rx(struct iwl_priv *priv, | |||
2905 | 2905 | ||
2906 | rx_status.mactime = le64_to_cpu(rx_start->timestamp); | 2906 | rx_status.mactime = le64_to_cpu(rx_start->timestamp); |
2907 | rx_status.freq = | 2907 | rx_status.freq = |
2908 | ieee80211_frequency_to_channel(le16_to_cpu(rx_start->channel)); | 2908 | ieee80211_channel_to_frequency(le16_to_cpu(rx_start->channel)); |
2909 | rx_status.band = (rx_start->phy_flags & RX_RES_PHY_FLAGS_BAND_24_MSK) ? | 2909 | rx_status.band = (rx_start->phy_flags & RX_RES_PHY_FLAGS_BAND_24_MSK) ? |
2910 | IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ; | 2910 | IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ; |
2911 | rx_status.rate_idx = | 2911 | rx_status.rate_idx = |
diff --git a/drivers/net/wireless/prism54/islpci_dev.c b/drivers/net/wireless/prism54/islpci_dev.c index 04c2638d75ad..9196825ed1b5 100644 --- a/drivers/net/wireless/prism54/islpci_dev.c +++ b/drivers/net/wireless/prism54/islpci_dev.c | |||
@@ -388,8 +388,15 @@ islpci_open(struct net_device *ndev) | |||
388 | 388 | ||
389 | netif_start_queue(ndev); | 389 | netif_start_queue(ndev); |
390 | 390 | ||
391 | /* Turn off carrier unless we know we have associated */ | 391 | /* Turn off carrier if in STA or Ad-hoc mode. It will be turned on |
392 | netif_carrier_off(ndev); | 392 | * once the firmware receives a trap of being associated |
393 | * (GEN_OID_LINKSTATE). In other modes (AP or WDS or monitor) we | ||
394 | * should just leave the carrier on as its expected the firmware | ||
395 | * won't send us a trigger. */ | ||
396 | if (priv->iw_mode == IW_MODE_INFRA || priv->iw_mode == IW_MODE_ADHOC) | ||
397 | netif_carrier_off(ndev); | ||
398 | else | ||
399 | netif_carrier_on(ndev); | ||
393 | 400 | ||
394 | return 0; | 401 | return 0; |
395 | } | 402 | } |
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index f51a50b31e16..3a49c256789f 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c | |||
@@ -1028,8 +1028,10 @@ static int rt2x00lib_initialize(struct rt2x00_dev *rt2x00dev) | |||
1028 | * Initialize the device. | 1028 | * Initialize the device. |
1029 | */ | 1029 | */ |
1030 | status = rt2x00dev->ops->lib->initialize(rt2x00dev); | 1030 | status = rt2x00dev->ops->lib->initialize(rt2x00dev); |
1031 | if (status) | 1031 | if (status) { |
1032 | goto exit; | 1032 | rt2x00queue_uninitialize(rt2x00dev); |
1033 | return status; | ||
1034 | } | ||
1033 | 1035 | ||
1034 | __set_bit(DEVICE_INITIALIZED, &rt2x00dev->flags); | 1036 | __set_bit(DEVICE_INITIALIZED, &rt2x00dev->flags); |
1035 | 1037 | ||
@@ -1039,11 +1041,6 @@ static int rt2x00lib_initialize(struct rt2x00_dev *rt2x00dev) | |||
1039 | rt2x00rfkill_register(rt2x00dev); | 1041 | rt2x00rfkill_register(rt2x00dev); |
1040 | 1042 | ||
1041 | return 0; | 1043 | return 0; |
1042 | |||
1043 | exit: | ||
1044 | rt2x00lib_uninitialize(rt2x00dev); | ||
1045 | |||
1046 | return status; | ||
1047 | } | 1044 | } |
1048 | 1045 | ||
1049 | int rt2x00lib_start(struct rt2x00_dev *rt2x00dev) | 1046 | int rt2x00lib_start(struct rt2x00_dev *rt2x00dev) |
diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c index 9e5d94e44c5c..c17078eac197 100644 --- a/drivers/net/wireless/rt2x00/rt2x00pci.c +++ b/drivers/net/wireless/rt2x00/rt2x00pci.c | |||
@@ -314,13 +314,14 @@ int rt2x00pci_initialize(struct rt2x00_dev *rt2x00dev) | |||
314 | if (status) { | 314 | if (status) { |
315 | ERROR(rt2x00dev, "IRQ %d allocation failed (error %d).\n", | 315 | ERROR(rt2x00dev, "IRQ %d allocation failed (error %d).\n", |
316 | pci_dev->irq, status); | 316 | pci_dev->irq, status); |
317 | return status; | 317 | goto exit; |
318 | } | 318 | } |
319 | 319 | ||
320 | return 0; | 320 | return 0; |
321 | 321 | ||
322 | exit: | 322 | exit: |
323 | rt2x00pci_uninitialize(rt2x00dev); | 323 | queue_for_each(rt2x00dev, queue) |
324 | rt2x00pci_free_queue_dma(rt2x00dev, queue); | ||
324 | 325 | ||
325 | return status; | 326 | return status; |
326 | } | 327 | } |
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c index eaf23b908772..edddbf35bbab 100644 --- a/drivers/net/wireless/rt2x00/rt61pci.c +++ b/drivers/net/wireless/rt2x00/rt61pci.c | |||
@@ -2361,6 +2361,7 @@ static int rt61pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb, | |||
2361 | { | 2361 | { |
2362 | struct rt2x00_dev *rt2x00dev = hw->priv; | 2362 | struct rt2x00_dev *rt2x00dev = hw->priv; |
2363 | struct rt2x00_intf *intf = vif_to_intf(control->vif); | 2363 | struct rt2x00_intf *intf = vif_to_intf(control->vif); |
2364 | struct queue_entry_priv_pci_tx *priv_tx; | ||
2364 | struct skb_frame_desc *skbdesc; | 2365 | struct skb_frame_desc *skbdesc; |
2365 | unsigned int beacon_base; | 2366 | unsigned int beacon_base; |
2366 | u32 reg; | 2367 | u32 reg; |
@@ -2368,21 +2369,8 @@ static int rt61pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb, | |||
2368 | if (unlikely(!intf->beacon)) | 2369 | if (unlikely(!intf->beacon)) |
2369 | return -ENOBUFS; | 2370 | return -ENOBUFS; |
2370 | 2371 | ||
2371 | /* | 2372 | priv_tx = intf->beacon->priv_data; |
2372 | * We need to append the descriptor in front of the | 2373 | memset(priv_tx->desc, 0, intf->beacon->queue->desc_size); |
2373 | * beacon frame. | ||
2374 | */ | ||
2375 | if (skb_headroom(skb) < intf->beacon->queue->desc_size) { | ||
2376 | if (pskb_expand_head(skb, intf->beacon->queue->desc_size, | ||
2377 | 0, GFP_ATOMIC)) | ||
2378 | return -ENOMEM; | ||
2379 | } | ||
2380 | |||
2381 | /* | ||
2382 | * Add the descriptor in front of the skb. | ||
2383 | */ | ||
2384 | skb_push(skb, intf->beacon->queue->desc_size); | ||
2385 | memset(skb->data, 0, intf->beacon->queue->desc_size); | ||
2386 | 2374 | ||
2387 | /* | 2375 | /* |
2388 | * Fill in skb descriptor | 2376 | * Fill in skb descriptor |
@@ -2390,9 +2378,9 @@ static int rt61pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb, | |||
2390 | skbdesc = get_skb_frame_desc(skb); | 2378 | skbdesc = get_skb_frame_desc(skb); |
2391 | memset(skbdesc, 0, sizeof(*skbdesc)); | 2379 | memset(skbdesc, 0, sizeof(*skbdesc)); |
2392 | skbdesc->flags |= FRAME_DESC_DRIVER_GENERATED; | 2380 | skbdesc->flags |= FRAME_DESC_DRIVER_GENERATED; |
2393 | skbdesc->data = skb->data + intf->beacon->queue->desc_size; | 2381 | skbdesc->data = skb->data; |
2394 | skbdesc->data_len = skb->len - intf->beacon->queue->desc_size; | 2382 | skbdesc->data_len = skb->len; |
2395 | skbdesc->desc = skb->data; | 2383 | skbdesc->desc = priv_tx->desc; |
2396 | skbdesc->desc_len = intf->beacon->queue->desc_size; | 2384 | skbdesc->desc_len = intf->beacon->queue->desc_size; |
2397 | skbdesc->entry = intf->beacon; | 2385 | skbdesc->entry = intf->beacon; |
2398 | 2386 | ||
@@ -2413,7 +2401,10 @@ static int rt61pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb, | |||
2413 | rt2x00lib_write_tx_desc(rt2x00dev, skb, control); | 2401 | rt2x00lib_write_tx_desc(rt2x00dev, skb, control); |
2414 | beacon_base = HW_BEACON_OFFSET(intf->beacon->entry_idx); | 2402 | beacon_base = HW_BEACON_OFFSET(intf->beacon->entry_idx); |
2415 | rt2x00pci_register_multiwrite(rt2x00dev, beacon_base, | 2403 | rt2x00pci_register_multiwrite(rt2x00dev, beacon_base, |
2416 | skb->data, skb->len); | 2404 | skbdesc->desc, skbdesc->desc_len); |
2405 | rt2x00pci_register_multiwrite(rt2x00dev, | ||
2406 | beacon_base + skbdesc->desc_len, | ||
2407 | skbdesc->data, skbdesc->data_len); | ||
2417 | rt61pci_kick_tx_queue(rt2x00dev, QID_BEACON); | 2408 | rt61pci_kick_tx_queue(rt2x00dev, QID_BEACON); |
2418 | 2409 | ||
2419 | return 0; | 2410 | return 0; |
@@ -2478,7 +2469,7 @@ static const struct data_queue_desc rt61pci_queue_tx = { | |||
2478 | 2469 | ||
2479 | static const struct data_queue_desc rt61pci_queue_bcn = { | 2470 | static const struct data_queue_desc rt61pci_queue_bcn = { |
2480 | .entry_num = 4 * BEACON_ENTRIES, | 2471 | .entry_num = 4 * BEACON_ENTRIES, |
2481 | .data_size = MGMT_FRAME_SIZE, | 2472 | .data_size = 0, /* No DMA required for beacons */ |
2482 | .desc_size = TXINFO_SIZE, | 2473 | .desc_size = TXINFO_SIZE, |
2483 | .priv_size = sizeof(struct queue_entry_priv_pci_tx), | 2474 | .priv_size = sizeof(struct queue_entry_priv_pci_tx), |
2484 | }; | 2475 | }; |
diff --git a/drivers/net/wireless/strip.c b/drivers/net/wireless/strip.c index 5dd23c93497d..883af891ebfb 100644 --- a/drivers/net/wireless/strip.c +++ b/drivers/net/wireless/strip.c | |||
@@ -2611,7 +2611,7 @@ static int strip_open(struct tty_struct *tty) | |||
2611 | * We need a write method. | 2611 | * We need a write method. |
2612 | */ | 2612 | */ |
2613 | 2613 | ||
2614 | if (tty->ops->write == NULL) | 2614 | if (tty->ops->write == NULL || tty->ops->set_termios == NULL) |
2615 | return -EOPNOTSUPP; | 2615 | return -EOPNOTSUPP; |
2616 | 2616 | ||
2617 | /* | 2617 | /* |
diff --git a/drivers/net/wireless/wavelan.c b/drivers/net/wireless/wavelan.c index 03384a43186b..49ae97003952 100644 --- a/drivers/net/wireless/wavelan.c +++ b/drivers/net/wireless/wavelan.c | |||
@@ -908,9 +908,9 @@ static void wv_psa_show(psa_t * p) | |||
908 | p->psa_call_code[3], p->psa_call_code[4], p->psa_call_code[5], | 908 | p->psa_call_code[3], p->psa_call_code[4], p->psa_call_code[5], |
909 | p->psa_call_code[6], p->psa_call_code[7]); | 909 | p->psa_call_code[6], p->psa_call_code[7]); |
910 | #ifdef DEBUG_SHOW_UNUSED | 910 | #ifdef DEBUG_SHOW_UNUSED |
911 | printk(KERN_DEBUG "psa_reserved[]: %02X:%02X:%02X:%02X\n", | 911 | printk(KERN_DEBUG "psa_reserved[]: %02X:%02X\n", |
912 | p->psa_reserved[0], | 912 | p->psa_reserved[0], |
913 | p->psa_reserved[1], p->psa_reserved[2], p->psa_reserved[3]); | 913 | p->psa_reserved[1]); |
914 | #endif /* DEBUG_SHOW_UNUSED */ | 914 | #endif /* DEBUG_SHOW_UNUSED */ |
915 | printk(KERN_DEBUG "psa_conf_status: %d, ", p->psa_conf_status); | 915 | printk(KERN_DEBUG "psa_conf_status: %d, ", p->psa_conf_status); |
916 | printk("psa_crc: 0x%02x%02x, ", p->psa_crc[0], p->psa_crc[1]); | 916 | printk("psa_crc: 0x%02x%02x, ", p->psa_crc[0], p->psa_crc[1]); |
diff --git a/drivers/net/wireless/wavelan_cs.c b/drivers/net/wireless/wavelan_cs.c index baf74015751c..b584c0ecc62d 100644 --- a/drivers/net/wireless/wavelan_cs.c +++ b/drivers/net/wireless/wavelan_cs.c | |||
@@ -1074,11 +1074,9 @@ wv_psa_show(psa_t * p) | |||
1074 | p->psa_call_code[6], | 1074 | p->psa_call_code[6], |
1075 | p->psa_call_code[7]); | 1075 | p->psa_call_code[7]); |
1076 | #ifdef DEBUG_SHOW_UNUSED | 1076 | #ifdef DEBUG_SHOW_UNUSED |
1077 | printk(KERN_DEBUG "psa_reserved[]: %02X:%02X:%02X:%02X\n", | 1077 | printk(KERN_DEBUG "psa_reserved[]: %02X:%02X\n", |
1078 | p->psa_reserved[0], | 1078 | p->psa_reserved[0], |
1079 | p->psa_reserved[1], | 1079 | p->psa_reserved[1]); |
1080 | p->psa_reserved[2], | ||
1081 | p->psa_reserved[3]); | ||
1082 | #endif /* DEBUG_SHOW_UNUSED */ | 1080 | #endif /* DEBUG_SHOW_UNUSED */ |
1083 | printk(KERN_DEBUG "psa_conf_status: %d, ", p->psa_conf_status); | 1081 | printk(KERN_DEBUG "psa_conf_status: %d, ", p->psa_conf_status); |
1084 | printk("psa_crc: 0x%02x%02x, ", p->psa_crc[0], p->psa_crc[1]); | 1082 | printk("psa_crc: 0x%02x%02x, ", p->psa_crc[0], p->psa_crc[1]); |
diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c index 5316074f39f0..12e24f04dddf 100644 --- a/drivers/net/wireless/zd1211rw/zd_usb.c +++ b/drivers/net/wireless/zd1211rw/zd_usb.c | |||
@@ -889,9 +889,13 @@ static void tx_urb_complete(struct urb *urb) | |||
889 | } | 889 | } |
890 | free_urb: | 890 | free_urb: |
891 | skb = (struct sk_buff *)urb->context; | 891 | skb = (struct sk_buff *)urb->context; |
892 | zd_mac_tx_to_dev(skb, urb->status); | 892 | /* |
893 | * grab 'usb' pointer before handing off the skb (since | ||
894 | * it might be freed by zd_mac_tx_to_dev or mac80211) | ||
895 | */ | ||
893 | cb = (struct zd_tx_skb_control_block *)skb->cb; | 896 | cb = (struct zd_tx_skb_control_block *)skb->cb; |
894 | usb = &zd_hw_mac(cb->hw)->chip.usb; | 897 | usb = &zd_hw_mac(cb->hw)->chip.usb; |
898 | zd_mac_tx_to_dev(skb, urb->status); | ||
895 | free_tx_urb(usb, urb); | 899 | free_tx_urb(usb, urb); |
896 | tx_dec_submitted_urbs(usb); | 900 | tx_dec_submitted_urbs(usb); |
897 | return; | 901 | return; |