diff options
author | David S. Miller <davem@davemloft.net> | 2012-07-11 02:56:33 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-11 02:56:33 -0400 |
commit | 04c9f416e371cff076a8b3279fb213628915d059 (patch) | |
tree | 2b64cb835cbc9d19d2d06f1e7618615d40ada0af /drivers/net | |
parent | c278fa53c123282f753b2264fc62c0e9502a32fa (diff) | |
parent | c1f5163de417dab01fa9daaf09a74bbb19303f3c (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
net/batman-adv/bridge_loop_avoidance.c
net/batman-adv/bridge_loop_avoidance.h
net/batman-adv/soft-interface.c
net/mac80211/mlme.c
With merge help from Antonio Quartulli (batman-adv) and
Stephen Rothwell (drivers/net/usb/qmi_wwan.c).
The net/mac80211/mlme.c conflict seemed easy enough, accounting for a
conversion to some new tracing macros.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/bonding/bond_debugfs.c | 2 | ||||
-rw-r--r-- | drivers/net/bonding/bond_main.c | 9 | ||||
-rw-r--r-- | drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 1 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/b44.c | 4 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2.c | 6 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/cnic.c | 3 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/gianfar.c | 7 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 5 | ||||
-rw-r--r-- | drivers/net/ethernet/stmicro/stmmac/ring_mode.c | 3 | ||||
-rw-r--r-- | drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 | ||||
-rw-r--r-- | drivers/net/phy/mdio-mux.c | 10 | ||||
-rw-r--r-- | drivers/net/usb/qmi_wwan.c | 18 | ||||
-rw-r--r-- | drivers/net/wireless/b43legacy/dma.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlegacy/4965-mac.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlegacy/common.c | 14 | ||||
-rw-r--r-- | drivers/net/wireless/mwifiex/cfg80211.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00usb.c | 2 |
17 files changed, 64 insertions, 30 deletions
diff --git a/drivers/net/bonding/bond_debugfs.c b/drivers/net/bonding/bond_debugfs.c index 3680aa251dea..2cf084eb9d52 100644 --- a/drivers/net/bonding/bond_debugfs.c +++ b/drivers/net/bonding/bond_debugfs.c | |||
@@ -6,7 +6,7 @@ | |||
6 | #include "bonding.h" | 6 | #include "bonding.h" |
7 | #include "bond_alb.h" | 7 | #include "bond_alb.h" |
8 | 8 | ||
9 | #ifdef CONFIG_DEBUG_FS | 9 | #if defined(CONFIG_DEBUG_FS) && !defined(CONFIG_NET_NS) |
10 | 10 | ||
11 | #include <linux/debugfs.h> | 11 | #include <linux/debugfs.h> |
12 | #include <linux/seq_file.h> | 12 | #include <linux/seq_file.h> |
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index f5a40b925f5e..4ddcc3e41dab 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c | |||
@@ -3230,6 +3230,12 @@ static int bond_master_netdev_event(unsigned long event, | |||
3230 | switch (event) { | 3230 | switch (event) { |
3231 | case NETDEV_CHANGENAME: | 3231 | case NETDEV_CHANGENAME: |
3232 | return bond_event_changename(event_bond); | 3232 | return bond_event_changename(event_bond); |
3233 | case NETDEV_UNREGISTER: | ||
3234 | bond_remove_proc_entry(event_bond); | ||
3235 | break; | ||
3236 | case NETDEV_REGISTER: | ||
3237 | bond_create_proc_entry(event_bond); | ||
3238 | break; | ||
3233 | default: | 3239 | default: |
3234 | break; | 3240 | break; |
3235 | } | 3241 | } |
@@ -4414,8 +4420,6 @@ static void bond_uninit(struct net_device *bond_dev) | |||
4414 | 4420 | ||
4415 | bond_work_cancel_all(bond); | 4421 | bond_work_cancel_all(bond); |
4416 | 4422 | ||
4417 | bond_remove_proc_entry(bond); | ||
4418 | |||
4419 | bond_debug_unregister(bond); | 4423 | bond_debug_unregister(bond); |
4420 | 4424 | ||
4421 | __hw_addr_flush(&bond->mc_list); | 4425 | __hw_addr_flush(&bond->mc_list); |
@@ -4817,7 +4821,6 @@ static int bond_init(struct net_device *bond_dev) | |||
4817 | 4821 | ||
4818 | bond_set_lockdep_class(bond_dev); | 4822 | bond_set_lockdep_class(bond_dev); |
4819 | 4823 | ||
4820 | bond_create_proc_entry(bond); | ||
4821 | list_add_tail(&bond->bond_list, &bn->dev_list); | 4824 | list_add_tail(&bond->bond_list, &bn->dev_list); |
4822 | 4825 | ||
4823 | bond_prepare_sysfs_group(bond); | 4826 | bond_prepare_sysfs_group(bond); |
diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c index 42c13d8280c6..36d3783ebfa0 100644 --- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c | |||
@@ -261,7 +261,6 @@ static void atl1c_check_link_status(struct atl1c_adapter *adapter) | |||
261 | if ((phy_data & BMSR_LSTATUS) == 0) { | 261 | if ((phy_data & BMSR_LSTATUS) == 0) { |
262 | /* link down */ | 262 | /* link down */ |
263 | netif_carrier_off(netdev); | 263 | netif_carrier_off(netdev); |
264 | netif_stop_queue(netdev); | ||
265 | hw->hibernate = true; | 264 | hw->hibernate = true; |
266 | if (atl1c_reset_mac(hw) != 0) | 265 | if (atl1c_reset_mac(hw) != 0) |
267 | if (netif_msg_hw(adapter)) | 266 | if (netif_msg_hw(adapter)) |
diff --git a/drivers/net/ethernet/broadcom/b44.c b/drivers/net/ethernet/broadcom/b44.c index 46b8b7d81633..d09c6b583d17 100644 --- a/drivers/net/ethernet/broadcom/b44.c +++ b/drivers/net/ethernet/broadcom/b44.c | |||
@@ -656,7 +656,7 @@ static int b44_alloc_rx_skb(struct b44 *bp, int src_idx, u32 dest_idx_unmasked) | |||
656 | dma_unmap_single(bp->sdev->dma_dev, mapping, | 656 | dma_unmap_single(bp->sdev->dma_dev, mapping, |
657 | RX_PKT_BUF_SZ, DMA_FROM_DEVICE); | 657 | RX_PKT_BUF_SZ, DMA_FROM_DEVICE); |
658 | dev_kfree_skb_any(skb); | 658 | dev_kfree_skb_any(skb); |
659 | skb = __netdev_alloc_skb(bp->dev, RX_PKT_BUF_SZ, GFP_ATOMIC|GFP_DMA); | 659 | skb = alloc_skb(RX_PKT_BUF_SZ, GFP_ATOMIC | GFP_DMA); |
660 | if (skb == NULL) | 660 | if (skb == NULL) |
661 | return -ENOMEM; | 661 | return -ENOMEM; |
662 | mapping = dma_map_single(bp->sdev->dma_dev, skb->data, | 662 | mapping = dma_map_single(bp->sdev->dma_dev, skb->data, |
@@ -967,7 +967,7 @@ static netdev_tx_t b44_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
967 | dma_unmap_single(bp->sdev->dma_dev, mapping, len, | 967 | dma_unmap_single(bp->sdev->dma_dev, mapping, len, |
968 | DMA_TO_DEVICE); | 968 | DMA_TO_DEVICE); |
969 | 969 | ||
970 | bounce_skb = __netdev_alloc_skb(dev, len, GFP_ATOMIC | GFP_DMA); | 970 | bounce_skb = alloc_skb(len, GFP_ATOMIC | GFP_DMA); |
971 | if (!bounce_skb) | 971 | if (!bounce_skb) |
972 | goto err_out; | 972 | goto err_out; |
973 | 973 | ||
diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c index 1901da153312..0ced154129a9 100644 --- a/drivers/net/ethernet/broadcom/bnx2.c +++ b/drivers/net/ethernet/broadcom/bnx2.c | |||
@@ -5377,7 +5377,7 @@ bnx2_free_tx_skbs(struct bnx2 *bp) | |||
5377 | int k, last; | 5377 | int k, last; |
5378 | 5378 | ||
5379 | if (skb == NULL) { | 5379 | if (skb == NULL) { |
5380 | j++; | 5380 | j = NEXT_TX_BD(j); |
5381 | continue; | 5381 | continue; |
5382 | } | 5382 | } |
5383 | 5383 | ||
@@ -5389,8 +5389,8 @@ bnx2_free_tx_skbs(struct bnx2 *bp) | |||
5389 | tx_buf->skb = NULL; | 5389 | tx_buf->skb = NULL; |
5390 | 5390 | ||
5391 | last = tx_buf->nr_frags; | 5391 | last = tx_buf->nr_frags; |
5392 | j++; | 5392 | j = NEXT_TX_BD(j); |
5393 | for (k = 0; k < last; k++, j++) { | 5393 | for (k = 0; k < last; k++, j = NEXT_TX_BD(j)) { |
5394 | tx_buf = &txr->tx_buf_ring[TX_RING_IDX(j)]; | 5394 | tx_buf = &txr->tx_buf_ring[TX_RING_IDX(j)]; |
5395 | dma_unmap_page(&bp->pdev->dev, | 5395 | dma_unmap_page(&bp->pdev->dev, |
5396 | dma_unmap_addr(tx_buf, mapping), | 5396 | dma_unmap_addr(tx_buf, mapping), |
diff --git a/drivers/net/ethernet/broadcom/cnic.c b/drivers/net/ethernet/broadcom/cnic.c index 650c545705f3..3b4fc61f24cf 100644 --- a/drivers/net/ethernet/broadcom/cnic.c +++ b/drivers/net/ethernet/broadcom/cnic.c | |||
@@ -542,7 +542,8 @@ int cnic_unregister_driver(int ulp_type) | |||
542 | } | 542 | } |
543 | 543 | ||
544 | if (atomic_read(&ulp_ops->ref_count) != 0) | 544 | if (atomic_read(&ulp_ops->ref_count) != 0) |
545 | netdev_warn(dev->netdev, "Failed waiting for ref count to go to zero\n"); | 545 | pr_warn("%s: Failed waiting for ref count to go to zero\n", |
546 | __func__); | ||
546 | return 0; | 547 | return 0; |
547 | 548 | ||
548 | out_unlock: | 549 | out_unlock: |
diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c index af16f9fbc353..4605f7246687 100644 --- a/drivers/net/ethernet/freescale/gianfar.c +++ b/drivers/net/ethernet/freescale/gianfar.c | |||
@@ -2077,10 +2077,9 @@ static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
2077 | return NETDEV_TX_OK; | 2077 | return NETDEV_TX_OK; |
2078 | } | 2078 | } |
2079 | 2079 | ||
2080 | /* Steal sock reference for processing TX time stamps */ | 2080 | if (skb->sk) |
2081 | swap(skb_new->sk, skb->sk); | 2081 | skb_set_owner_w(skb_new, skb->sk); |
2082 | swap(skb_new->destructor, skb->destructor); | 2082 | consume_skb(skb); |
2083 | kfree_skb(skb); | ||
2084 | skb = skb_new; | 2083 | skb = skb_new; |
2085 | } | 2084 | } |
2086 | 2085 | ||
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 9313f5c84fad..59a3f141feb1 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | |||
@@ -6640,6 +6640,11 @@ int ixgbe_setup_tc(struct net_device *dev, u8 tc) | |||
6640 | return -EINVAL; | 6640 | return -EINVAL; |
6641 | } | 6641 | } |
6642 | 6642 | ||
6643 | if (adapter->flags & IXGBE_FLAG_SRIOV_ENABLED) { | ||
6644 | e_err(drv, "Enable failed, SR-IOV enabled\n"); | ||
6645 | return -EINVAL; | ||
6646 | } | ||
6647 | |||
6643 | /* Hardware supports up to 8 traffic classes */ | 6648 | /* Hardware supports up to 8 traffic classes */ |
6644 | if (tc > adapter->dcb_cfg.num_tcs.pg_tcs || | 6649 | if (tc > adapter->dcb_cfg.num_tcs.pg_tcs || |
6645 | (hw->mac.type == ixgbe_mac_82598EB && | 6650 | (hw->mac.type == ixgbe_mac_82598EB && |
diff --git a/drivers/net/ethernet/stmicro/stmmac/ring_mode.c b/drivers/net/ethernet/stmicro/stmmac/ring_mode.c index fb8377da1687..4b785e10f2ed 100644 --- a/drivers/net/ethernet/stmicro/stmmac/ring_mode.c +++ b/drivers/net/ethernet/stmicro/stmmac/ring_mode.c | |||
@@ -51,7 +51,7 @@ static unsigned int stmmac_jumbo_frm(void *p, struct sk_buff *skb, int csum) | |||
51 | desc->des3 = desc->des2 + BUF_SIZE_4KiB; | 51 | desc->des3 = desc->des2 + BUF_SIZE_4KiB; |
52 | priv->hw->desc->prepare_tx_desc(desc, 1, bmax, | 52 | priv->hw->desc->prepare_tx_desc(desc, 1, bmax, |
53 | csum); | 53 | csum); |
54 | 54 | wmb(); | |
55 | entry = (++priv->cur_tx) % txsize; | 55 | entry = (++priv->cur_tx) % txsize; |
56 | desc = priv->dma_tx + entry; | 56 | desc = priv->dma_tx + entry; |
57 | 57 | ||
@@ -59,6 +59,7 @@ static unsigned int stmmac_jumbo_frm(void *p, struct sk_buff *skb, int csum) | |||
59 | len, DMA_TO_DEVICE); | 59 | len, DMA_TO_DEVICE); |
60 | desc->des3 = desc->des2 + BUF_SIZE_4KiB; | 60 | desc->des3 = desc->des2 + BUF_SIZE_4KiB; |
61 | priv->hw->desc->prepare_tx_desc(desc, 0, len, csum); | 61 | priv->hw->desc->prepare_tx_desc(desc, 0, len, csum); |
62 | wmb(); | ||
62 | priv->hw->desc->set_tx_owner(desc); | 63 | priv->hw->desc->set_tx_owner(desc); |
63 | priv->tx_skbuff[entry] = NULL; | 64 | priv->tx_skbuff[entry] = NULL; |
64 | } else { | 65 | } else { |
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index ea3bc0963bd7..f6b04c1a3672 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | |||
@@ -1334,6 +1334,7 @@ static netdev_tx_t stmmac_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1334 | priv->hw->desc->prepare_tx_desc(desc, 0, len, csum_insertion); | 1334 | priv->hw->desc->prepare_tx_desc(desc, 0, len, csum_insertion); |
1335 | wmb(); | 1335 | wmb(); |
1336 | priv->hw->desc->set_tx_owner(desc); | 1336 | priv->hw->desc->set_tx_owner(desc); |
1337 | wmb(); | ||
1337 | } | 1338 | } |
1338 | 1339 | ||
1339 | /* Interrupt on completition only for the latest segment */ | 1340 | /* Interrupt on completition only for the latest segment */ |
@@ -1349,6 +1350,7 @@ static netdev_tx_t stmmac_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1349 | 1350 | ||
1350 | /* To avoid raise condition */ | 1351 | /* To avoid raise condition */ |
1351 | priv->hw->desc->set_tx_owner(first); | 1352 | priv->hw->desc->set_tx_owner(first); |
1353 | wmb(); | ||
1352 | 1354 | ||
1353 | priv->cur_tx++; | 1355 | priv->cur_tx++; |
1354 | 1356 | ||
@@ -1412,6 +1414,7 @@ static inline void stmmac_rx_refill(struct stmmac_priv *priv) | |||
1412 | } | 1414 | } |
1413 | wmb(); | 1415 | wmb(); |
1414 | priv->hw->desc->set_rx_owner(p + entry); | 1416 | priv->hw->desc->set_rx_owner(p + entry); |
1417 | wmb(); | ||
1415 | } | 1418 | } |
1416 | } | 1419 | } |
1417 | 1420 | ||
diff --git a/drivers/net/phy/mdio-mux.c b/drivers/net/phy/mdio-mux.c index 39ea0674dcde..5c120189ec86 100644 --- a/drivers/net/phy/mdio-mux.c +++ b/drivers/net/phy/mdio-mux.c | |||
@@ -46,7 +46,13 @@ static int mdio_mux_read(struct mii_bus *bus, int phy_id, int regnum) | |||
46 | struct mdio_mux_parent_bus *pb = cb->parent; | 46 | struct mdio_mux_parent_bus *pb = cb->parent; |
47 | int r; | 47 | int r; |
48 | 48 | ||
49 | mutex_lock(&pb->mii_bus->mdio_lock); | 49 | /* In theory multiple mdio_mux could be stacked, thus creating |
50 | * more than a single level of nesting. But in practice, | ||
51 | * SINGLE_DEPTH_NESTING will cover the vast majority of use | ||
52 | * cases. We use it, instead of trying to handle the general | ||
53 | * case. | ||
54 | */ | ||
55 | mutex_lock_nested(&pb->mii_bus->mdio_lock, SINGLE_DEPTH_NESTING); | ||
50 | r = pb->switch_fn(pb->current_child, cb->bus_number, pb->switch_data); | 56 | r = pb->switch_fn(pb->current_child, cb->bus_number, pb->switch_data); |
51 | if (r) | 57 | if (r) |
52 | goto out; | 58 | goto out; |
@@ -71,7 +77,7 @@ static int mdio_mux_write(struct mii_bus *bus, int phy_id, | |||
71 | 77 | ||
72 | int r; | 78 | int r; |
73 | 79 | ||
74 | mutex_lock(&pb->mii_bus->mdio_lock); | 80 | mutex_lock_nested(&pb->mii_bus->mdio_lock, SINGLE_DEPTH_NESTING); |
75 | r = pb->switch_fn(pb->current_child, cb->bus_number, pb->switch_data); | 81 | r = pb->switch_fn(pb->current_child, cb->bus_number, pb->switch_data); |
76 | if (r) | 82 | if (r) |
77 | goto out; | 83 | goto out; |
diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c index b9cc5f703d7d..85c983d52527 100644 --- a/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c | |||
@@ -374,6 +374,15 @@ static const struct driver_info qmi_wwan_force_int1 = { | |||
374 | .data = BIT(1), /* interface whitelist bitmap */ | 374 | .data = BIT(1), /* interface whitelist bitmap */ |
375 | }; | 375 | }; |
376 | 376 | ||
377 | static const struct driver_info qmi_wwan_force_int2 = { | ||
378 | .description = "Qualcomm WWAN/QMI device", | ||
379 | .flags = FLAG_WWAN, | ||
380 | .bind = qmi_wwan_bind_shared, | ||
381 | .unbind = qmi_wwan_unbind, | ||
382 | .manage_power = qmi_wwan_manage_power, | ||
383 | .data = BIT(2), /* interface whitelist bitmap */ | ||
384 | }; | ||
385 | |||
377 | static const struct driver_info qmi_wwan_force_int3 = { | 386 | static const struct driver_info qmi_wwan_force_int3 = { |
378 | .description = "Qualcomm WWAN/QMI device", | 387 | .description = "Qualcomm WWAN/QMI device", |
379 | .flags = FLAG_WWAN, | 388 | .flags = FLAG_WWAN, |
@@ -526,6 +535,15 @@ static const struct usb_device_id products[] = { | |||
526 | .bInterfaceProtocol = 0xff, | 535 | .bInterfaceProtocol = 0xff, |
527 | .driver_info = (unsigned long)&qmi_wwan_force_int4, | 536 | .driver_info = (unsigned long)&qmi_wwan_force_int4, |
528 | }, | 537 | }, |
538 | { /* ZTE MF60 */ | ||
539 | .match_flags = USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_INT_INFO, | ||
540 | .idVendor = 0x19d2, | ||
541 | .idProduct = 0x1402, | ||
542 | .bInterfaceClass = 0xff, | ||
543 | .bInterfaceSubClass = 0xff, | ||
544 | .bInterfaceProtocol = 0xff, | ||
545 | .driver_info = (unsigned long)&qmi_wwan_force_int2, | ||
546 | }, | ||
529 | { /* Sierra Wireless MC77xx in QMI mode */ | 547 | { /* Sierra Wireless MC77xx in QMI mode */ |
530 | .match_flags = USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_INT_INFO, | 548 | .match_flags = USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_INT_INFO, |
531 | .idVendor = 0x1199, | 549 | .idVendor = 0x1199, |
diff --git a/drivers/net/wireless/b43legacy/dma.c b/drivers/net/wireless/b43legacy/dma.c index ff50cb4290e4..2d3c6644f82d 100644 --- a/drivers/net/wireless/b43legacy/dma.c +++ b/drivers/net/wireless/b43legacy/dma.c | |||
@@ -1072,7 +1072,7 @@ static int dma_tx_fragment(struct b43legacy_dmaring *ring, | |||
1072 | meta->dmaaddr = map_descbuffer(ring, skb->data, skb->len, 1); | 1072 | meta->dmaaddr = map_descbuffer(ring, skb->data, skb->len, 1); |
1073 | /* create a bounce buffer in zone_dma on mapping failure. */ | 1073 | /* create a bounce buffer in zone_dma on mapping failure. */ |
1074 | if (b43legacy_dma_mapping_error(ring, meta->dmaaddr, skb->len, 1)) { | 1074 | if (b43legacy_dma_mapping_error(ring, meta->dmaaddr, skb->len, 1)) { |
1075 | bounce_skb = __dev_alloc_skb(skb->len, GFP_ATOMIC | GFP_DMA); | 1075 | bounce_skb = alloc_skb(skb->len, GFP_ATOMIC | GFP_DMA); |
1076 | if (!bounce_skb) { | 1076 | if (!bounce_skb) { |
1077 | ring->current_slot = old_top_slot; | 1077 | ring->current_slot = old_top_slot; |
1078 | ring->used_slots = old_used_slots; | 1078 | ring->used_slots = old_used_slots; |
diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c b/drivers/net/wireless/iwlegacy/4965-mac.c index d24eaf89ffb5..34f61a0581a2 100644 --- a/drivers/net/wireless/iwlegacy/4965-mac.c +++ b/drivers/net/wireless/iwlegacy/4965-mac.c | |||
@@ -3405,7 +3405,7 @@ il4965_remove_dynamic_key(struct il_priv *il, | |||
3405 | return 0; | 3405 | return 0; |
3406 | } | 3406 | } |
3407 | 3407 | ||
3408 | if (il->stations[sta_id].sta.key.key_offset == WEP_INVALID_OFFSET) { | 3408 | if (il->stations[sta_id].sta.key.key_flags & STA_KEY_FLG_INVALID) { |
3409 | IL_WARN("Removing wrong key %d 0x%x\n", keyconf->keyidx, | 3409 | IL_WARN("Removing wrong key %d 0x%x\n", keyconf->keyidx, |
3410 | key_flags); | 3410 | key_flags); |
3411 | spin_unlock_irqrestore(&il->sta_lock, flags); | 3411 | spin_unlock_irqrestore(&il->sta_lock, flags); |
@@ -3420,7 +3420,7 @@ il4965_remove_dynamic_key(struct il_priv *il, | |||
3420 | memset(&il->stations[sta_id].sta.key, 0, sizeof(struct il4965_keyinfo)); | 3420 | memset(&il->stations[sta_id].sta.key, 0, sizeof(struct il4965_keyinfo)); |
3421 | il->stations[sta_id].sta.key.key_flags = | 3421 | il->stations[sta_id].sta.key.key_flags = |
3422 | STA_KEY_FLG_NO_ENC | STA_KEY_FLG_INVALID; | 3422 | STA_KEY_FLG_NO_ENC | STA_KEY_FLG_INVALID; |
3423 | il->stations[sta_id].sta.key.key_offset = WEP_INVALID_OFFSET; | 3423 | il->stations[sta_id].sta.key.key_offset = keyconf->hw_key_idx; |
3424 | il->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_KEY_MASK; | 3424 | il->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_KEY_MASK; |
3425 | il->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK; | 3425 | il->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK; |
3426 | 3426 | ||
diff --git a/drivers/net/wireless/iwlegacy/common.c b/drivers/net/wireless/iwlegacy/common.c index 763c7529921b..0f8a7703eea3 100644 --- a/drivers/net/wireless/iwlegacy/common.c +++ b/drivers/net/wireless/iwlegacy/common.c | |||
@@ -4768,14 +4768,12 @@ il_bg_watchdog(unsigned long data) | |||
4768 | return; | 4768 | return; |
4769 | 4769 | ||
4770 | /* monitor and check for other stuck queues */ | 4770 | /* monitor and check for other stuck queues */ |
4771 | if (il_is_any_associated(il)) { | 4771 | for (cnt = 0; cnt < il->hw_params.max_txq_num; cnt++) { |
4772 | for (cnt = 0; cnt < il->hw_params.max_txq_num; cnt++) { | 4772 | /* skip as we already checked the command queue */ |
4773 | /* skip as we already checked the command queue */ | 4773 | if (cnt == il->cmd_queue) |
4774 | if (cnt == il->cmd_queue) | 4774 | continue; |
4775 | continue; | 4775 | if (il_check_stuck_queue(il, cnt)) |
4776 | if (il_check_stuck_queue(il, cnt)) | 4776 | return; |
4777 | return; | ||
4778 | } | ||
4779 | } | 4777 | } |
4780 | 4778 | ||
4781 | mod_timer(&il->watchdog, | 4779 | mod_timer(&il->watchdog, |
diff --git a/drivers/net/wireless/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c index 4b2733af1a0e..3af88b8cfcb7 100644 --- a/drivers/net/wireless/mwifiex/cfg80211.c +++ b/drivers/net/wireless/mwifiex/cfg80211.c | |||
@@ -976,6 +976,7 @@ static int mwifiex_cfg80211_start_ap(struct wiphy *wiphy, | |||
976 | case NL80211_HIDDEN_SSID_ZERO_CONTENTS: | 976 | case NL80211_HIDDEN_SSID_ZERO_CONTENTS: |
977 | /* firmware doesn't support this type of hidden SSID */ | 977 | /* firmware doesn't support this type of hidden SSID */ |
978 | default: | 978 | default: |
979 | kfree(bss_cfg); | ||
979 | return -EINVAL; | 980 | return -EINVAL; |
980 | } | 981 | } |
981 | 982 | ||
diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.c b/drivers/net/wireless/rt2x00/rt2x00usb.c index d357d1ed92f6..74ecc33fdd90 100644 --- a/drivers/net/wireless/rt2x00/rt2x00usb.c +++ b/drivers/net/wireless/rt2x00/rt2x00usb.c | |||
@@ -436,8 +436,8 @@ void rt2x00usb_kick_queue(struct data_queue *queue) | |||
436 | case QID_RX: | 436 | case QID_RX: |
437 | if (!rt2x00queue_full(queue)) | 437 | if (!rt2x00queue_full(queue)) |
438 | rt2x00queue_for_each_entry(queue, | 438 | rt2x00queue_for_each_entry(queue, |
439 | Q_INDEX_DONE, | ||
440 | Q_INDEX, | 439 | Q_INDEX, |
440 | Q_INDEX_DONE, | ||
441 | NULL, | 441 | NULL, |
442 | rt2x00usb_kick_rx_entry); | 442 | rt2x00usb_kick_rx_entry); |
443 | break; | 443 | break; |