diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/3c509.c | 6 | ||||
-rw-r--r-- | drivers/net/Kconfig | 18 | ||||
-rw-r--r-- | drivers/net/atl1e/atl1e.h | 1 | ||||
-rw-r--r-- | drivers/net/bnx2x_init.h | 9 | ||||
-rw-r--r-- | drivers/net/bnx2x_main.c | 10 | ||||
-rw-r--r-- | drivers/net/cris/eth_v10.c | 4 | ||||
-rw-r--r-- | drivers/net/fs_enet/fs_enet-main.c | 6 | ||||
-rw-r--r-- | drivers/net/irda/ks959-sir.c | 1 | ||||
-rw-r--r-- | drivers/net/irda/ksdazzle-sir.c | 1 | ||||
-rw-r--r-- | drivers/net/mv643xx_eth.c | 9 | ||||
-rw-r--r-- | drivers/net/niu.c | 6 | ||||
-rw-r--r-- | drivers/net/smc911x.c | 2 | ||||
-rw-r--r-- | drivers/net/smc91x.c | 2 | ||||
-rw-r--r-- | drivers/net/tun.c | 2 | ||||
-rw-r--r-- | drivers/net/ucc_geth_ethtool.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/ath5k/base.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/ath5k/desc.c | 16 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 15 | ||||
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_usb.c | 2 |
20 files changed, 77 insertions, 44 deletions
diff --git a/drivers/net/3c509.c b/drivers/net/3c509.c index 226a017a9991..535c234286ea 100644 --- a/drivers/net/3c509.c +++ b/drivers/net/3c509.c | |||
@@ -94,7 +94,7 @@ | |||
94 | #include <asm/io.h> | 94 | #include <asm/io.h> |
95 | #include <asm/irq.h> | 95 | #include <asm/irq.h> |
96 | 96 | ||
97 | static char version[] __initdata = DRV_NAME ".c:" DRV_VERSION " " DRV_RELDATE " becker@scyld.com\n"; | 97 | static char version[] __devinitdata = DRV_NAME ".c:" DRV_VERSION " " DRV_RELDATE " becker@scyld.com\n"; |
98 | 98 | ||
99 | #ifdef EL3_DEBUG | 99 | #ifdef EL3_DEBUG |
100 | static int el3_debug = EL3_DEBUG; | 100 | static int el3_debug = EL3_DEBUG; |
@@ -186,7 +186,7 @@ static int max_interrupt_work = 10; | |||
186 | static int nopnp; | 186 | static int nopnp; |
187 | #endif | 187 | #endif |
188 | 188 | ||
189 | static int __init el3_common_init(struct net_device *dev); | 189 | static int __devinit el3_common_init(struct net_device *dev); |
190 | static void el3_common_remove(struct net_device *dev); | 190 | static void el3_common_remove(struct net_device *dev); |
191 | static ushort id_read_eeprom(int index); | 191 | static ushort id_read_eeprom(int index); |
192 | static ushort read_eeprom(int ioaddr, int index); | 192 | static ushort read_eeprom(int ioaddr, int index); |
@@ -537,7 +537,7 @@ static struct mca_driver el3_mca_driver = { | |||
537 | static int mca_registered; | 537 | static int mca_registered; |
538 | #endif /* CONFIG_MCA */ | 538 | #endif /* CONFIG_MCA */ |
539 | 539 | ||
540 | static int __init el3_common_init(struct net_device *dev) | 540 | static int __devinit el3_common_init(struct net_device *dev) |
541 | { | 541 | { |
542 | struct el3_private *lp = netdev_priv(dev); | 542 | struct el3_private *lp = netdev_priv(dev); |
543 | int err; | 543 | int err; |
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 0f3e6b2d2808..1757bb3f6e08 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
@@ -1997,9 +1997,13 @@ config IGB_LRO | |||
1997 | If in doubt, say N. | 1997 | If in doubt, say N. |
1998 | 1998 | ||
1999 | config IGB_DCA | 1999 | config IGB_DCA |
2000 | bool "Enable DCA" | 2000 | bool "Direct Cache Access (DCA) Support" |
2001 | default y | 2001 | default y |
2002 | depends on IGB && DCA && !(IGB=y && DCA=m) | 2002 | depends on IGB && DCA && !(IGB=y && DCA=m) |
2003 | ---help--- | ||
2004 | Say Y here if you want to use Direct Cache Access (DCA) in the | ||
2005 | driver. DCA is a method for warming the CPU cache before data | ||
2006 | is used, with the intent of lessening the impact of cache misses. | ||
2003 | 2007 | ||
2004 | source "drivers/net/ixp2000/Kconfig" | 2008 | source "drivers/net/ixp2000/Kconfig" |
2005 | 2009 | ||
@@ -2424,9 +2428,13 @@ config IXGBE | |||
2424 | will be called ixgbe. | 2428 | will be called ixgbe. |
2425 | 2429 | ||
2426 | config IXGBE_DCA | 2430 | config IXGBE_DCA |
2427 | bool | 2431 | bool "Direct Cache Access (DCA) Support" |
2428 | default y | 2432 | default y |
2429 | depends on IXGBE && DCA && !(IXGBE=y && DCA=m) | 2433 | depends on IXGBE && DCA && !(IXGBE=y && DCA=m) |
2434 | ---help--- | ||
2435 | Say Y here if you want to use Direct Cache Access (DCA) in the | ||
2436 | driver. DCA is a method for warming the CPU cache before data | ||
2437 | is used, with the intent of lessening the impact of cache misses. | ||
2430 | 2438 | ||
2431 | config IXGB | 2439 | config IXGB |
2432 | tristate "Intel(R) PRO/10GbE support" | 2440 | tristate "Intel(R) PRO/10GbE support" |
@@ -2476,9 +2484,13 @@ config MYRI10GE | |||
2476 | will be called myri10ge. | 2484 | will be called myri10ge. |
2477 | 2485 | ||
2478 | config MYRI10GE_DCA | 2486 | config MYRI10GE_DCA |
2479 | bool | 2487 | bool "Direct Cache Access (DCA) Support" |
2480 | default y | 2488 | default y |
2481 | depends on MYRI10GE && DCA && !(MYRI10GE=y && DCA=m) | 2489 | depends on MYRI10GE && DCA && !(MYRI10GE=y && DCA=m) |
2490 | ---help--- | ||
2491 | Say Y here if you want to use Direct Cache Access (DCA) in the | ||
2492 | driver. DCA is a method for warming the CPU cache before data | ||
2493 | is used, with the intent of lessening the impact of cache misses. | ||
2482 | 2494 | ||
2483 | config NETXEN_NIC | 2495 | config NETXEN_NIC |
2484 | tristate "NetXen Multi port (1/10) Gigabit Ethernet NIC" | 2496 | tristate "NetXen Multi port (1/10) Gigabit Ethernet NIC" |
diff --git a/drivers/net/atl1e/atl1e.h b/drivers/net/atl1e/atl1e.h index b645fa0f3f64..c49550d507a0 100644 --- a/drivers/net/atl1e/atl1e.h +++ b/drivers/net/atl1e/atl1e.h | |||
@@ -46,7 +46,6 @@ | |||
46 | #include <linux/vmalloc.h> | 46 | #include <linux/vmalloc.h> |
47 | #include <linux/pagemap.h> | 47 | #include <linux/pagemap.h> |
48 | #include <linux/tcp.h> | 48 | #include <linux/tcp.h> |
49 | #include <linux/mii.h> | ||
50 | #include <linux/ethtool.h> | 49 | #include <linux/ethtool.h> |
51 | #include <linux/if_vlan.h> | 50 | #include <linux/if_vlan.h> |
52 | #include <linux/workqueue.h> | 51 | #include <linux/workqueue.h> |
diff --git a/drivers/net/bnx2x_init.h b/drivers/net/bnx2x_init.h index 130927cfc75b..a6c0b3abba29 100644 --- a/drivers/net/bnx2x_init.h +++ b/drivers/net/bnx2x_init.h | |||
@@ -564,14 +564,15 @@ static const struct arb_line write_arb_addr[NUM_WR_Q-1] = { | |||
564 | 564 | ||
565 | static void bnx2x_init_pxp(struct bnx2x *bp) | 565 | static void bnx2x_init_pxp(struct bnx2x *bp) |
566 | { | 566 | { |
567 | u16 devctl; | ||
567 | int r_order, w_order; | 568 | int r_order, w_order; |
568 | u32 val, i; | 569 | u32 val, i; |
569 | 570 | ||
570 | pci_read_config_word(bp->pdev, | 571 | pci_read_config_word(bp->pdev, |
571 | bp->pcie_cap + PCI_EXP_DEVCTL, (u16 *)&val); | 572 | bp->pcie_cap + PCI_EXP_DEVCTL, &devctl); |
572 | DP(NETIF_MSG_HW, "read 0x%x from devctl\n", (u16)val); | 573 | DP(NETIF_MSG_HW, "read 0x%x from devctl\n", devctl); |
573 | w_order = ((val & PCI_EXP_DEVCTL_PAYLOAD) >> 5); | 574 | w_order = ((devctl & PCI_EXP_DEVCTL_PAYLOAD) >> 5); |
574 | r_order = ((val & PCI_EXP_DEVCTL_READRQ) >> 12); | 575 | r_order = ((devctl & PCI_EXP_DEVCTL_READRQ) >> 12); |
575 | 576 | ||
576 | if (r_order > MAX_RD_ORD) { | 577 | if (r_order > MAX_RD_ORD) { |
577 | DP(NETIF_MSG_HW, "read order of %d order adjusted to %d\n", | 578 | DP(NETIF_MSG_HW, "read order of %d order adjusted to %d\n", |
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c index 68d0ed3a50d7..49f8e7891626 100644 --- a/drivers/net/bnx2x_main.c +++ b/drivers/net/bnx2x_main.c | |||
@@ -59,8 +59,8 @@ | |||
59 | #include "bnx2x.h" | 59 | #include "bnx2x.h" |
60 | #include "bnx2x_init.h" | 60 | #include "bnx2x_init.h" |
61 | 61 | ||
62 | #define DRV_MODULE_VERSION "1.45.22" | 62 | #define DRV_MODULE_VERSION "1.45.23" |
63 | #define DRV_MODULE_RELDATE "2008/09/09" | 63 | #define DRV_MODULE_RELDATE "2008/11/03" |
64 | #define BNX2X_BC_VER 0x040200 | 64 | #define BNX2X_BC_VER 0x040200 |
65 | 65 | ||
66 | /* Time in jiffies before concluding the transmitter is hung */ | 66 | /* Time in jiffies before concluding the transmitter is hung */ |
@@ -6479,6 +6479,7 @@ load_int_disable: | |||
6479 | bnx2x_free_irq(bp); | 6479 | bnx2x_free_irq(bp); |
6480 | load_error: | 6480 | load_error: |
6481 | bnx2x_free_mem(bp); | 6481 | bnx2x_free_mem(bp); |
6482 | bp->port.pmf = 0; | ||
6482 | 6483 | ||
6483 | /* TBD we really need to reset the chip | 6484 | /* TBD we really need to reset the chip |
6484 | if we want to recover from this */ | 6485 | if we want to recover from this */ |
@@ -6789,6 +6790,7 @@ unload_error: | |||
6789 | /* Report UNLOAD_DONE to MCP */ | 6790 | /* Report UNLOAD_DONE to MCP */ |
6790 | if (!BP_NOMCP(bp)) | 6791 | if (!BP_NOMCP(bp)) |
6791 | bnx2x_fw_command(bp, DRV_MSG_CODE_UNLOAD_DONE); | 6792 | bnx2x_fw_command(bp, DRV_MSG_CODE_UNLOAD_DONE); |
6793 | bp->port.pmf = 0; | ||
6792 | 6794 | ||
6793 | /* Free SKBs, SGEs, TPA pool and driver internals */ | 6795 | /* Free SKBs, SGEs, TPA pool and driver internals */ |
6794 | bnx2x_free_skbs(bp); | 6796 | bnx2x_free_skbs(bp); |
@@ -10196,8 +10198,6 @@ static int __devinit bnx2x_init_one(struct pci_dev *pdev, | |||
10196 | return -ENOMEM; | 10198 | return -ENOMEM; |
10197 | } | 10199 | } |
10198 | 10200 | ||
10199 | netif_carrier_off(dev); | ||
10200 | |||
10201 | bp = netdev_priv(dev); | 10201 | bp = netdev_priv(dev); |
10202 | bp->msglevel = debug; | 10202 | bp->msglevel = debug; |
10203 | 10203 | ||
@@ -10221,6 +10221,8 @@ static int __devinit bnx2x_init_one(struct pci_dev *pdev, | |||
10221 | goto init_one_exit; | 10221 | goto init_one_exit; |
10222 | } | 10222 | } |
10223 | 10223 | ||
10224 | netif_carrier_off(dev); | ||
10225 | |||
10224 | bp->common.name = board_info[ent->driver_data].name; | 10226 | bp->common.name = board_info[ent->driver_data].name; |
10225 | printk(KERN_INFO "%s: %s (%c%d) PCI-E x%d %s found at mem %lx," | 10227 | printk(KERN_INFO "%s: %s (%c%d) PCI-E x%d %s found at mem %lx," |
10226 | " IRQ %d, ", dev->name, bp->common.name, | 10228 | " IRQ %d, ", dev->name, bp->common.name, |
diff --git a/drivers/net/cris/eth_v10.c b/drivers/net/cris/eth_v10.c index 486fa215d3ad..c9806c58b2fd 100644 --- a/drivers/net/cris/eth_v10.c +++ b/drivers/net/cris/eth_v10.c | |||
@@ -32,14 +32,14 @@ | |||
32 | #include <linux/skbuff.h> | 32 | #include <linux/skbuff.h> |
33 | #include <linux/ethtool.h> | 33 | #include <linux/ethtool.h> |
34 | 34 | ||
35 | #include <asm/arch/svinto.h>/* DMA and register descriptions */ | 35 | #include <arch/svinto.h>/* DMA and register descriptions */ |
36 | #include <asm/io.h> /* CRIS_LED_* I/O functions */ | 36 | #include <asm/io.h> /* CRIS_LED_* I/O functions */ |
37 | #include <asm/irq.h> | 37 | #include <asm/irq.h> |
38 | #include <asm/dma.h> | 38 | #include <asm/dma.h> |
39 | #include <asm/system.h> | 39 | #include <asm/system.h> |
40 | #include <asm/ethernet.h> | 40 | #include <asm/ethernet.h> |
41 | #include <asm/cache.h> | 41 | #include <asm/cache.h> |
42 | #include <asm/arch/io_interface_mux.h> | 42 | #include <arch/io_interface_mux.h> |
43 | 43 | ||
44 | //#define ETHDEBUG | 44 | //#define ETHDEBUG |
45 | #define D(x) | 45 | #define D(x) |
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c index e32f08d18c65..df66d620b115 100644 --- a/drivers/net/fs_enet/fs_enet-main.c +++ b/drivers/net/fs_enet/fs_enet-main.c | |||
@@ -1099,7 +1099,9 @@ static int __devinit fs_enet_probe(struct of_device *ofdev, | |||
1099 | ndev->stop = fs_enet_close; | 1099 | ndev->stop = fs_enet_close; |
1100 | ndev->get_stats = fs_enet_get_stats; | 1100 | ndev->get_stats = fs_enet_get_stats; |
1101 | ndev->set_multicast_list = fs_set_multicast_list; | 1101 | ndev->set_multicast_list = fs_set_multicast_list; |
1102 | 1102 | #ifdef CONFIG_NET_POLL_CONTROLLER | |
1103 | ndev->poll_controller = fs_enet_netpoll; | ||
1104 | #endif | ||
1103 | if (fpi->use_napi) | 1105 | if (fpi->use_napi) |
1104 | netif_napi_add(ndev, &fep->napi, fs_enet_rx_napi, | 1106 | netif_napi_add(ndev, &fep->napi, fs_enet_rx_napi, |
1105 | fpi->napi_weight); | 1107 | fpi->napi_weight); |
@@ -1206,7 +1208,7 @@ static void __exit fs_cleanup(void) | |||
1206 | static void fs_enet_netpoll(struct net_device *dev) | 1208 | static void fs_enet_netpoll(struct net_device *dev) |
1207 | { | 1209 | { |
1208 | disable_irq(dev->irq); | 1210 | disable_irq(dev->irq); |
1209 | fs_enet_interrupt(dev->irq, dev, NULL); | 1211 | fs_enet_interrupt(dev->irq, dev); |
1210 | enable_irq(dev->irq); | 1212 | enable_irq(dev->irq); |
1211 | } | 1213 | } |
1212 | #endif | 1214 | #endif |
diff --git a/drivers/net/irda/ks959-sir.c b/drivers/net/irda/ks959-sir.c index f59d5b6b7bfe..600d96f9cdb7 100644 --- a/drivers/net/irda/ks959-sir.c +++ b/drivers/net/irda/ks959-sir.c | |||
@@ -118,7 +118,6 @@ | |||
118 | #include <linux/errno.h> | 118 | #include <linux/errno.h> |
119 | #include <linux/init.h> | 119 | #include <linux/init.h> |
120 | #include <linux/slab.h> | 120 | #include <linux/slab.h> |
121 | #include <linux/module.h> | ||
122 | #include <linux/kref.h> | 121 | #include <linux/kref.h> |
123 | #include <linux/usb.h> | 122 | #include <linux/usb.h> |
124 | #include <linux/device.h> | 123 | #include <linux/device.h> |
diff --git a/drivers/net/irda/ksdazzle-sir.c b/drivers/net/irda/ksdazzle-sir.c index 6c39f3f6d4e6..0e7f89337b25 100644 --- a/drivers/net/irda/ksdazzle-sir.c +++ b/drivers/net/irda/ksdazzle-sir.c | |||
@@ -82,7 +82,6 @@ | |||
82 | #include <linux/errno.h> | 82 | #include <linux/errno.h> |
83 | #include <linux/init.h> | 83 | #include <linux/init.h> |
84 | #include <linux/slab.h> | 84 | #include <linux/slab.h> |
85 | #include <linux/module.h> | ||
86 | #include <linux/kref.h> | 85 | #include <linux/kref.h> |
87 | #include <linux/usb.h> | 86 | #include <linux/usb.h> |
88 | #include <linux/device.h> | 87 | #include <linux/device.h> |
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index e521d2cebad6..b13fbc4ebd87 100644 --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c | |||
@@ -1064,9 +1064,12 @@ static int smi_wait_ready(struct mv643xx_eth_shared_private *msp) | |||
1064 | return 0; | 1064 | return 0; |
1065 | } | 1065 | } |
1066 | 1066 | ||
1067 | if (!wait_event_timeout(msp->smi_busy_wait, smi_is_done(msp), | 1067 | if (!smi_is_done(msp)) { |
1068 | msecs_to_jiffies(100))) | 1068 | wait_event_timeout(msp->smi_busy_wait, smi_is_done(msp), |
1069 | return -ETIMEDOUT; | 1069 | msecs_to_jiffies(100)); |
1070 | if (!smi_is_done(msp)) | ||
1071 | return -ETIMEDOUT; | ||
1072 | } | ||
1070 | 1073 | ||
1071 | return 0; | 1074 | return 0; |
1072 | } | 1075 | } |
diff --git a/drivers/net/niu.c b/drivers/net/niu.c index 0d8338450675..2c3bb36cda17 100644 --- a/drivers/net/niu.c +++ b/drivers/net/niu.c | |||
@@ -8663,7 +8663,6 @@ static void __devinit niu_device_announce(struct niu *np) | |||
8663 | static int __devinit niu_pci_init_one(struct pci_dev *pdev, | 8663 | static int __devinit niu_pci_init_one(struct pci_dev *pdev, |
8664 | const struct pci_device_id *ent) | 8664 | const struct pci_device_id *ent) |
8665 | { | 8665 | { |
8666 | unsigned long niureg_base, niureg_len; | ||
8667 | union niu_parent_id parent_id; | 8666 | union niu_parent_id parent_id; |
8668 | struct net_device *dev; | 8667 | struct net_device *dev; |
8669 | struct niu *np; | 8668 | struct niu *np; |
@@ -8754,10 +8753,7 @@ static int __devinit niu_pci_init_one(struct pci_dev *pdev, | |||
8754 | 8753 | ||
8755 | dev->features |= (NETIF_F_SG | NETIF_F_HW_CSUM); | 8754 | dev->features |= (NETIF_F_SG | NETIF_F_HW_CSUM); |
8756 | 8755 | ||
8757 | niureg_base = pci_resource_start(pdev, 0); | 8756 | np->regs = pci_ioremap_bar(pdev, 0); |
8758 | niureg_len = pci_resource_len(pdev, 0); | ||
8759 | |||
8760 | np->regs = ioremap_nocache(niureg_base, niureg_len); | ||
8761 | if (!np->regs) { | 8757 | if (!np->regs) { |
8762 | dev_err(&pdev->dev, PFX "Cannot map device registers, " | 8758 | dev_err(&pdev->dev, PFX "Cannot map device registers, " |
8763 | "aborting.\n"); | 8759 | "aborting.\n"); |
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c index a8cf006c0998..e0b972d36664 100644 --- a/drivers/net/smc911x.c +++ b/drivers/net/smc911x.c | |||
@@ -498,7 +498,7 @@ static void smc911x_hardware_send_pkt(struct net_device *dev) | |||
498 | #else | 498 | #else |
499 | SMC_PUSH_DATA(lp, buf, len); | 499 | SMC_PUSH_DATA(lp, buf, len); |
500 | dev->trans_start = jiffies; | 500 | dev->trans_start = jiffies; |
501 | dev_kfree_skb(skb); | 501 | dev_kfree_skb_irq(skb); |
502 | #endif | 502 | #endif |
503 | if (!lp->tx_throttle) { | 503 | if (!lp->tx_throttle) { |
504 | netif_wake_queue(dev); | 504 | netif_wake_queue(dev); |
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c index 2ca301d71902..5879c719b538 100644 --- a/drivers/net/smc91x.c +++ b/drivers/net/smc91x.c | |||
@@ -2058,6 +2058,7 @@ static int smc_request_attrib(struct platform_device *pdev, | |||
2058 | struct net_device *ndev) | 2058 | struct net_device *ndev) |
2059 | { | 2059 | { |
2060 | struct resource * res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-attrib"); | 2060 | struct resource * res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-attrib"); |
2061 | struct smc_local *lp __maybe_unused = netdev_priv(ndev); | ||
2061 | 2062 | ||
2062 | if (!res) | 2063 | if (!res) |
2063 | return 0; | 2064 | return 0; |
@@ -2072,6 +2073,7 @@ static void smc_release_attrib(struct platform_device *pdev, | |||
2072 | struct net_device *ndev) | 2073 | struct net_device *ndev) |
2073 | { | 2074 | { |
2074 | struct resource * res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-attrib"); | 2075 | struct resource * res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-attrib"); |
2076 | struct smc_local *lp __maybe_unused = netdev_priv(ndev); | ||
2075 | 2077 | ||
2076 | if (res) | 2078 | if (res) |
2077 | release_mem_region(res->start, ATTRIB_SIZE); | 2079 | release_mem_region(res->start, ATTRIB_SIZE); |
diff --git a/drivers/net/tun.c b/drivers/net/tun.c index 680d78e38f13..5a6203072ce7 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c | |||
@@ -1068,8 +1068,6 @@ static int tun_chr_close(struct inode *inode, struct file *file) | |||
1068 | 1068 | ||
1069 | DBG(KERN_INFO "%s: tun_chr_close\n", tun->dev->name); | 1069 | DBG(KERN_INFO "%s: tun_chr_close\n", tun->dev->name); |
1070 | 1070 | ||
1071 | tun_chr_fasync(-1, file, 0); | ||
1072 | |||
1073 | rtnl_lock(); | 1071 | rtnl_lock(); |
1074 | 1072 | ||
1075 | /* Detach from net device */ | 1073 | /* Detach from net device */ |
diff --git a/drivers/net/ucc_geth_ethtool.c b/drivers/net/ucc_geth_ethtool.c index cfbbfee55836..85f38a6b6a49 100644 --- a/drivers/net/ucc_geth_ethtool.c +++ b/drivers/net/ucc_geth_ethtool.c | |||
@@ -37,7 +37,6 @@ | |||
37 | #include <asm/irq.h> | 37 | #include <asm/irq.h> |
38 | #include <asm/uaccess.h> | 38 | #include <asm/uaccess.h> |
39 | #include <asm/types.h> | 39 | #include <asm/types.h> |
40 | #include <asm/uaccess.h> | ||
41 | 40 | ||
42 | #include "ucc_geth.h" | 41 | #include "ucc_geth.h" |
43 | #include "ucc_geth_mii.h" | 42 | #include "ucc_geth_mii.h" |
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 | ||
5970 | static void iwl3945_bg_rf_kill(struct work_struct *work) | 5970 | static 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 }, |