aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/3c509.c2
-rw-r--r--drivers/net/3c59x.c4
-rw-r--r--drivers/net/Kconfig12
-rw-r--r--drivers/net/cs89x0.c13
-rw-r--r--drivers/net/hamradio/baycom_ser_fdx.c4
-rw-r--r--drivers/net/hamradio/scc.c6
-rw-r--r--drivers/net/irda/kingsun-sir.c3
-rw-r--r--drivers/net/irda/ks959-sir.c3
-rw-r--r--drivers/net/irda/ksdazzle-sir.c3
-rw-r--r--drivers/net/irda/sir_dongle.c2
-rw-r--r--drivers/net/irda/stir4200.c18
-rw-r--r--drivers/net/ixgbe/ixgbe.h4
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c32
-rw-r--r--drivers/net/myri10ge/myri10ge.c26
-rw-r--r--drivers/net/pcmcia/Kconfig2
-rw-r--r--drivers/net/phy/phy_device.c8
-rw-r--r--drivers/net/ppp_generic.c14
-rw-r--r--drivers/net/pppox.c9
-rw-r--r--drivers/net/sh_eth.c5
-rw-r--r--drivers/net/usb/catc.c8
-rw-r--r--drivers/net/usb/kaweth.c27
-rw-r--r--drivers/net/usb/pegasus.c4
-rw-r--r--drivers/net/usb/rtl8150.c31
-rw-r--r--drivers/net/wan/cosa.c4
-rw-r--r--drivers/net/wan/lmc/lmc_main.c31
-rw-r--r--drivers/net/wan/sbni.c2
-rw-r--r--drivers/net/wireless/ath9k/main.c8
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000.c6
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rs.c2
-rw-r--r--drivers/net/wireless/libertas/cmd.c2
-rw-r--r--drivers/net/wireless/mac80211_hwsim.c6
-rw-r--r--drivers/net/wireless/orinoco_cs.c5
-rw-r--r--drivers/net/wireless/p54/p54common.c1
-rw-r--r--drivers/net/wireless/p54/p54usb.c3
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00queue.c9
-rw-r--r--drivers/net/wireless/rtl8187_dev.c3
-rw-r--r--drivers/net/wireless/spectrum_cs.c5
-rw-r--r--drivers/net/xen-netfront.c7
38 files changed, 185 insertions, 149 deletions
diff --git a/drivers/net/3c509.c b/drivers/net/3c509.c
index b9d097c9f6bb..3a7bc524af33 100644
--- a/drivers/net/3c509.c
+++ b/drivers/net/3c509.c
@@ -40,7 +40,7 @@
40 v1.14 10/15/97 Avoided waiting..discard message for fast machines -djb 40 v1.14 10/15/97 Avoided waiting..discard message for fast machines -djb
41 v1.15 1/31/98 Faster recovery for Tx errors. -djb 41 v1.15 1/31/98 Faster recovery for Tx errors. -djb
42 v1.16 2/3/98 Different ID port handling to avoid sound cards. -djb 42 v1.16 2/3/98 Different ID port handling to avoid sound cards. -djb
43 v1.18 12Mar2001 Andrew Morton <andrewm@uow.edu.au> 43 v1.18 12Mar2001 Andrew Morton
44 - Avoid bogus detect of 3c590's (Andrzej Krzysztofowicz) 44 - Avoid bogus detect of 3c590's (Andrzej Krzysztofowicz)
45 - Reviewed against 1.18 from scyld.com 45 - Reviewed against 1.18 from scyld.com
46 v1.18a 17Nov2001 Jeff Garzik <jgarzik@pobox.com> 46 v1.18a 17Nov2001 Jeff Garzik <jgarzik@pobox.com>
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
index 491ee16da5c1..9ba295d9dd97 100644
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -90,7 +90,7 @@ static int vortex_debug = 1;
90#include <linux/eisa.h> 90#include <linux/eisa.h>
91#include <linux/bitops.h> 91#include <linux/bitops.h>
92#include <linux/jiffies.h> 92#include <linux/jiffies.h>
93#include <asm/irq.h> /* For NR_IRQS only. */ 93#include <asm/irq.h> /* For nr_irqs only. */
94#include <asm/io.h> 94#include <asm/io.h>
95#include <asm/uaccess.h> 95#include <asm/uaccess.h>
96 96
@@ -1221,7 +1221,7 @@ static int __devinit vortex_probe1(struct device *gendev,
1221 if (print_info) 1221 if (print_info)
1222 printk(", IRQ %d\n", dev->irq); 1222 printk(", IRQ %d\n", dev->irq);
1223 /* Tell them about an invalid IRQ. */ 1223 /* Tell them about an invalid IRQ. */
1224 if (dev->irq <= 0 || dev->irq >= NR_IRQS) 1224 if (dev->irq <= 0 || dev->irq >= nr_irqs)
1225 printk(KERN_WARNING " *** Warning: IRQ %d is unlikely to work! ***\n", 1225 printk(KERN_WARNING " *** Warning: IRQ %d is unlikely to work! ***\n",
1226 dev->irq); 1226 dev->irq);
1227 1227
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 1d8af3348331..ad301ace6085 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -2410,7 +2410,6 @@ config IXGBE
2410 tristate "Intel(R) 10GbE PCI Express adapters support" 2410 tristate "Intel(R) 10GbE PCI Express adapters support"
2411 depends on PCI && INET 2411 depends on PCI && INET
2412 select INET_LRO 2412 select INET_LRO
2413 select INTEL_IOATDMA
2414 ---help--- 2413 ---help---
2415 This driver supports Intel(R) 10GbE PCI Express family of 2414 This driver supports Intel(R) 10GbE PCI Express family of
2416 adapters. For more information on how to identify your adapter, go 2415 adapters. For more information on how to identify your adapter, go
@@ -2426,6 +2425,11 @@ config IXGBE
2426 To compile this driver as a module, choose M here. The module 2425 To compile this driver as a module, choose M here. The module
2427 will be called ixgbe. 2426 will be called ixgbe.
2428 2427
2428config IXGBE_DCA
2429 bool
2430 default y
2431 depends on IXGBE && DCA && !(IXGBE=y && DCA=m)
2432
2429config IXGB 2433config IXGB
2430 tristate "Intel(R) PRO/10GbE support" 2434 tristate "Intel(R) PRO/10GbE support"
2431 depends on PCI 2435 depends on PCI
@@ -2462,7 +2466,6 @@ config MYRI10GE
2462 select FW_LOADER 2466 select FW_LOADER
2463 select CRC32 2467 select CRC32
2464 select INET_LRO 2468 select INET_LRO
2465 select INTEL_IOATDMA
2466 ---help--- 2469 ---help---
2467 This driver supports Myricom Myri-10G Dual Protocol interface in 2470 This driver supports Myricom Myri-10G Dual Protocol interface in
2468 Ethernet mode. If the eeprom on your board is not recent enough, 2471 Ethernet mode. If the eeprom on your board is not recent enough,
@@ -2474,6 +2477,11 @@ config MYRI10GE
2474 To compile this driver as a module, choose M here. The module 2477 To compile this driver as a module, choose M here. The module
2475 will be called myri10ge. 2478 will be called myri10ge.
2476 2479
2480config MYRI10GE_DCA
2481 bool
2482 default y
2483 depends on MYRI10GE && DCA && !(MYRI10GE=y && DCA=m)
2484
2477config NETXEN_NIC 2485config NETXEN_NIC
2478 tristate "NetXen Multi port (1/10) Gigabit Ethernet NIC" 2486 tristate "NetXen Multi port (1/10) Gigabit Ethernet NIC"
2479 depends on PCI 2487 depends on PCI
diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c
index a28de8182802..7107620f615d 100644
--- a/drivers/net/cs89x0.c
+++ b/drivers/net/cs89x0.c
@@ -36,8 +36,7 @@
36 36
37 Alan Cox : Removed 1.2 support, added 2.1 extra counters. 37 Alan Cox : Removed 1.2 support, added 2.1 extra counters.
38 38
39 Andrew Morton : andrewm@uow.edu.au 39 Andrew Morton : Kernel 2.3.48
40 : Kernel 2.3.48
41 : Handle kmalloc() failures 40 : Handle kmalloc() failures
42 : Other resource allocation fixes 41 : Other resource allocation fixes
43 : Add SMP locks 42 : Add SMP locks
@@ -49,7 +48,7 @@
49 : Fixed an out-of-mem bug in dma_rx() 48 : Fixed an out-of-mem bug in dma_rx()
50 : Updated Documentation/networking/cs89x0.txt 49 : Updated Documentation/networking/cs89x0.txt
51 50
52 Andrew Morton : andrewm@uow.edu.au / Kernel 2.3.99-pre1 51 Andrew Morton : Kernel 2.3.99-pre1
53 : Use skb_reserve to longword align IP header (two places) 52 : Use skb_reserve to longword align IP header (two places)
54 : Remove a delay loop from dma_rx() 53 : Remove a delay loop from dma_rx()
55 : Replace '100' with HZ 54 : Replace '100' with HZ
@@ -57,11 +56,11 @@
57 : Added 'cs89x0_dma=N' kernel boot option 56 : Added 'cs89x0_dma=N' kernel boot option
58 : Correctly initialise lp->lock in non-module compile 57 : Correctly initialise lp->lock in non-module compile
59 58
60 Andrew Morton : andrewm@uow.edu.au / Kernel 2.3.99-pre4-1 59 Andrew Morton : Kernel 2.3.99-pre4-1
61 : MOD_INC/DEC race fix (see 60 : MOD_INC/DEC race fix (see
62 : http://www.uwsg.indiana.edu/hypermail/linux/kernel/0003.3/1532.html) 61 : http://www.uwsg.indiana.edu/hypermail/linux/kernel/0003.3/1532.html)
63 62
64 Andrew Morton : andrewm@uow.edu.au / Kernel 2.4.0-test7-pre2 63 Andrew Morton : Kernel 2.4.0-test7-pre2
65 : Enhanced EEPROM support to cover more devices, 64 : Enhanced EEPROM support to cover more devices,
66 : abstracted IRQ mapping to support CONFIG_ARCH_CLPS7500 arch 65 : abstracted IRQ mapping to support CONFIG_ARCH_CLPS7500 arch
67 : (Jason Gunthorpe <jgg@ualberta.ca>) 66 : (Jason Gunthorpe <jgg@ualberta.ca>)
@@ -156,7 +155,7 @@
156#include "cs89x0.h" 155#include "cs89x0.h"
157 156
158static char version[] __initdata = 157static char version[] __initdata =
159"cs89x0.c: v2.4.3-pre1 Russell Nelson <nelson@crynwr.com>, Andrew Morton <andrewm@uow.edu.au>\n"; 158"cs89x0.c: v2.4.3-pre1 Russell Nelson <nelson@crynwr.com>, Andrew Morton\n";
160 159
161#define DRV_NAME "cs89x0" 160#define DRV_NAME "cs89x0"
162 161
@@ -1877,7 +1876,7 @@ MODULE_PARM_DESC(dmasize , "(ignored)");
1877MODULE_PARM_DESC(use_dma , "(ignored)"); 1876MODULE_PARM_DESC(use_dma , "(ignored)");
1878#endif 1877#endif
1879 1878
1880MODULE_AUTHOR("Mike Cruse, Russwll Nelson <nelson@crynwr.com>, Andrew Morton <andrewm@uow.edu.au>"); 1879MODULE_AUTHOR("Mike Cruse, Russwll Nelson <nelson@crynwr.com>, Andrew Morton");
1881MODULE_LICENSE("GPL"); 1880MODULE_LICENSE("GPL");
1882 1881
1883 1882
diff --git a/drivers/net/hamradio/baycom_ser_fdx.c b/drivers/net/hamradio/baycom_ser_fdx.c
index 17ac6975d70d..b6a816e60c0f 100644
--- a/drivers/net/hamradio/baycom_ser_fdx.c
+++ b/drivers/net/hamradio/baycom_ser_fdx.c
@@ -416,10 +416,10 @@ static int ser12_open(struct net_device *dev)
416 if (!dev || !bc) 416 if (!dev || !bc)
417 return -ENXIO; 417 return -ENXIO;
418 if (!dev->base_addr || dev->base_addr > 0xffff-SER12_EXTENT || 418 if (!dev->base_addr || dev->base_addr > 0xffff-SER12_EXTENT ||
419 dev->irq < 2 || dev->irq > NR_IRQS) { 419 dev->irq < 2 || dev->irq > nr_irqs) {
420 printk(KERN_INFO "baycom_ser_fdx: invalid portnumber (max %u) " 420 printk(KERN_INFO "baycom_ser_fdx: invalid portnumber (max %u) "
421 "or irq (2 <= irq <= %d)\n", 421 "or irq (2 <= irq <= %d)\n",
422 0xffff-SER12_EXTENT, NR_IRQS); 422 0xffff-SER12_EXTENT, nr_irqs);
423 return -ENXIO; 423 return -ENXIO;
424 } 424 }
425 if (bc->baud < 300 || bc->baud > 4800) { 425 if (bc->baud < 300 || bc->baud > 4800) {
diff --git a/drivers/net/hamradio/scc.c b/drivers/net/hamradio/scc.c
index 45ae9d1191d7..c17e39bc5460 100644
--- a/drivers/net/hamradio/scc.c
+++ b/drivers/net/hamradio/scc.c
@@ -1465,7 +1465,7 @@ static void z8530_init(void)
1465 printk(KERN_INFO "Init Z8530 driver: %u channels, IRQ", Nchips*2); 1465 printk(KERN_INFO "Init Z8530 driver: %u channels, IRQ", Nchips*2);
1466 1466
1467 flag=" "; 1467 flag=" ";
1468 for (k = 0; k < NR_IRQS; k++) 1468 for (k = 0; k < nr_irqs; k++)
1469 if (Ivec[k].used) 1469 if (Ivec[k].used)
1470 { 1470 {
1471 printk("%s%d", flag, k); 1471 printk("%s%d", flag, k);
@@ -1728,7 +1728,7 @@ static int scc_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
1728 1728
1729 if (hwcfg.irq == 2) hwcfg.irq = 9; 1729 if (hwcfg.irq == 2) hwcfg.irq = 9;
1730 1730
1731 if (hwcfg.irq < 0 || hwcfg.irq >= NR_IRQS) 1731 if (hwcfg.irq < 0 || hwcfg.irq >= nr_irqs)
1732 return -EINVAL; 1732 return -EINVAL;
1733 1733
1734 if (!Ivec[hwcfg.irq].used && hwcfg.irq) 1734 if (!Ivec[hwcfg.irq].used && hwcfg.irq)
@@ -2148,7 +2148,7 @@ static void __exit scc_cleanup_driver(void)
2148 } 2148 }
2149 2149
2150 /* To unload the port must be closed so no real IRQ pending */ 2150 /* To unload the port must be closed so no real IRQ pending */
2151 for (k=0; k < NR_IRQS ; k++) 2151 for (k = 0; k < nr_irqs ; k++)
2152 if (Ivec[k].used) free_irq(k, NULL); 2152 if (Ivec[k].used) free_irq(k, NULL);
2153 2153
2154 local_irq_enable(); 2154 local_irq_enable();
diff --git a/drivers/net/irda/kingsun-sir.c b/drivers/net/irda/kingsun-sir.c
index 73fe83be34fe..e1429fc6d050 100644
--- a/drivers/net/irda/kingsun-sir.c
+++ b/drivers/net/irda/kingsun-sir.c
@@ -540,7 +540,8 @@ static int kingsun_probe(struct usb_interface *intf,
540 if (ret != 0) 540 if (ret != 0)
541 goto free_mem; 541 goto free_mem;
542 542
543 info("IrDA: Registered KingSun/DonShine device %s", net->name); 543 dev_info(&net->dev, "IrDA: Registered KingSun/DonShine device %s\n",
544 net->name);
544 545
545 usb_set_intfdata(intf, kingsun); 546 usb_set_intfdata(intf, kingsun);
546 547
diff --git a/drivers/net/irda/ks959-sir.c b/drivers/net/irda/ks959-sir.c
index 8c257a51341a..2482d61662a2 100644
--- a/drivers/net/irda/ks959-sir.c
+++ b/drivers/net/irda/ks959-sir.c
@@ -801,7 +801,8 @@ static int ks959_probe(struct usb_interface *intf,
801 if (ret != 0) 801 if (ret != 0)
802 goto free_mem; 802 goto free_mem;
803 803
804 info("IrDA: Registered KingSun KS-959 device %s", net->name); 804 dev_info(&net->dev, "IrDA: Registered KingSun KS-959 device %s\n",
805 net->name);
805 806
806 usb_set_intfdata(intf, kingsun); 807 usb_set_intfdata(intf, kingsun);
807 808
diff --git a/drivers/net/irda/ksdazzle-sir.c b/drivers/net/irda/ksdazzle-sir.c
index d01a28593ce2..1e0de93fd618 100644
--- a/drivers/net/irda/ksdazzle-sir.c
+++ b/drivers/net/irda/ksdazzle-sir.c
@@ -705,7 +705,8 @@ static int ksdazzle_probe(struct usb_interface *intf,
705 if (ret != 0) 705 if (ret != 0)
706 goto free_mem; 706 goto free_mem;
707 707
708 info("IrDA: Registered KingSun/Dazzle device %s", net->name); 708 dev_info(&net->dev, "IrDA: Registered KingSun/Dazzle device %s\n",
709 net->name);
709 710
710 usb_set_intfdata(intf, kingsun); 711 usb_set_intfdata(intf, kingsun);
711 712
diff --git a/drivers/net/irda/sir_dongle.c b/drivers/net/irda/sir_dongle.c
index 36030241f7a9..2a9930e6e2af 100644
--- a/drivers/net/irda/sir_dongle.c
+++ b/drivers/net/irda/sir_dongle.c
@@ -67,9 +67,7 @@ int sirdev_get_dongle(struct sir_dev *dev, IRDA_DONGLE type)
67 const struct dongle_driver *drv = NULL; 67 const struct dongle_driver *drv = NULL;
68 int err = -EINVAL; 68 int err = -EINVAL;
69 69
70#ifdef CONFIG_KMOD
71 request_module("irda-dongle-%d", type); 70 request_module("irda-dongle-%d", type);
72#endif
73 71
74 if (dev->dongle_drv != NULL) 72 if (dev->dongle_drv != NULL)
75 return -EBUSY; 73 return -EBUSY;
diff --git a/drivers/net/irda/stir4200.c b/drivers/net/irda/stir4200.c
index 051963782749..3575804fd7c6 100644
--- a/drivers/net/irda/stir4200.c
+++ b/drivers/net/irda/stir4200.c
@@ -506,7 +506,7 @@ static int change_speed(struct stir_cb *stir, unsigned speed)
506 goto found; 506 goto found;
507 } 507 }
508 508
509 warn("%s: invalid speed %d", stir->netdev->name, speed); 509 dev_warn(&stir->netdev->dev, "invalid speed %d\n", speed);
510 return -EINVAL; 510 return -EINVAL;
511 511
512 found: 512 found:
@@ -598,8 +598,8 @@ static int fifo_txwait(struct stir_cb *stir, int space)
598 err = read_reg(stir, REG_FIFOCTL, stir->fifo_status, 598 err = read_reg(stir, REG_FIFOCTL, stir->fifo_status,
599 FIFO_REGS_SIZE); 599 FIFO_REGS_SIZE);
600 if (unlikely(err != FIFO_REGS_SIZE)) { 600 if (unlikely(err != FIFO_REGS_SIZE)) {
601 warn("%s: FIFO register read error: %d", 601 dev_warn(&stir->netdev->dev,
602 stir->netdev->name, err); 602 "FIFO register read error: %d\n", err);
603 603
604 return err; 604 return err;
605 } 605 }
@@ -783,8 +783,9 @@ static int stir_transmit_thread(void *arg)
783 783
784 if (unlikely(receive_start(stir))) { 784 if (unlikely(receive_start(stir))) {
785 if (net_ratelimit()) 785 if (net_ratelimit())
786 info("%s: receive usb submit failed", 786 dev_info(&dev->dev,
787 stir->netdev->name); 787 "%s: receive usb submit failed\n",
788 stir->netdev->name);
788 stir->receiving = 0; 789 stir->receiving = 0;
789 msleep(10); 790 msleep(10);
790 continue; 791 continue;
@@ -836,8 +837,8 @@ static void stir_rcv_irq(struct urb *urb)
836 837
837 /* in case of error, the kernel thread will restart us */ 838 /* in case of error, the kernel thread will restart us */
838 if (err) { 839 if (err) {
839 warn("%s: usb receive submit error: %d", 840 dev_warn(&stir->netdev->dev, "usb receive submit error: %d\n",
840 stir->netdev->name, err); 841 err);
841 stir->receiving = 0; 842 stir->receiving = 0;
842 wake_up_process(stir->thread); 843 wake_up_process(stir->thread);
843 } 844 }
@@ -1073,7 +1074,8 @@ static int stir_probe(struct usb_interface *intf,
1073 if (ret != 0) 1074 if (ret != 0)
1074 goto err_out2; 1075 goto err_out2;
1075 1076
1076 info("IrDA: Registered SigmaTel device %s", net->name); 1077 dev_info(&intf->dev, "IrDA: Registered SigmaTel device %s\n",
1078 net->name);
1077 1079
1078 usb_set_intfdata(intf, stir); 1080 usb_set_intfdata(intf, stir);
1079 1081
diff --git a/drivers/net/ixgbe/ixgbe.h b/drivers/net/ixgbe/ixgbe.h
index 2198b77c53ed..e116d340dcc6 100644
--- a/drivers/net/ixgbe/ixgbe.h
+++ b/drivers/net/ixgbe/ixgbe.h
@@ -36,7 +36,7 @@
36#include "ixgbe_type.h" 36#include "ixgbe_type.h"
37#include "ixgbe_common.h" 37#include "ixgbe_common.h"
38 38
39#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE) 39#ifdef CONFIG_IXGBE_DCA
40#include <linux/dca.h> 40#include <linux/dca.h>
41#endif 41#endif
42 42
@@ -136,7 +136,7 @@ struct ixgbe_ring {
136 * offset associated with this ring, which is different 136 * offset associated with this ring, which is different
137 * for DCE and RSS modes */ 137 * for DCE and RSS modes */
138 138
139#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE) 139#ifdef CONFIG_IXGBE_DCA
140 /* cpu for tx queue */ 140 /* cpu for tx queue */
141 int cpu; 141 int cpu;
142#endif 142#endif
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index ca17af4349d0..7548fb7360d9 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -80,7 +80,7 @@ static struct pci_device_id ixgbe_pci_tbl[] = {
80}; 80};
81MODULE_DEVICE_TABLE(pci, ixgbe_pci_tbl); 81MODULE_DEVICE_TABLE(pci, ixgbe_pci_tbl);
82 82
83#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE) 83#ifdef CONFIG_IXGBE_DCA
84static int ixgbe_notify_dca(struct notifier_block *, unsigned long event, 84static int ixgbe_notify_dca(struct notifier_block *, unsigned long event,
85 void *p); 85 void *p);
86static struct notifier_block dca_notifier = { 86static struct notifier_block dca_notifier = {
@@ -296,7 +296,7 @@ done_cleaning:
296 return (total_packets ? true : false); 296 return (total_packets ? true : false);
297} 297}
298 298
299#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE) 299#ifdef CONFIG_IXGBE_DCA
300static void ixgbe_update_rx_dca(struct ixgbe_adapter *adapter, 300static void ixgbe_update_rx_dca(struct ixgbe_adapter *adapter,
301 struct ixgbe_ring *rx_ring) 301 struct ixgbe_ring *rx_ring)
302{ 302{
@@ -383,7 +383,7 @@ static int __ixgbe_notify_dca(struct device *dev, void *data)
383 return 0; 383 return 0;
384} 384}
385 385
386#endif /* CONFIG_DCA or CONFIG_DCA_MODULE */ 386#endif /* CONFIG_IXGBE_DCA */
387/** 387/**
388 * ixgbe_receive_skb - Send a completed packet up the stack 388 * ixgbe_receive_skb - Send a completed packet up the stack
389 * @adapter: board private structure 389 * @adapter: board private structure
@@ -947,7 +947,7 @@ static irqreturn_t ixgbe_msix_clean_tx(int irq, void *data)
947 r_idx = find_first_bit(q_vector->txr_idx, adapter->num_tx_queues); 947 r_idx = find_first_bit(q_vector->txr_idx, adapter->num_tx_queues);
948 for (i = 0; i < q_vector->txr_count; i++) { 948 for (i = 0; i < q_vector->txr_count; i++) {
949 tx_ring = &(adapter->tx_ring[r_idx]); 949 tx_ring = &(adapter->tx_ring[r_idx]);
950#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE) 950#ifdef CONFIG_IXGBE_DCA
951 if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) 951 if (adapter->flags & IXGBE_FLAG_DCA_ENABLED)
952 ixgbe_update_tx_dca(adapter, tx_ring); 952 ixgbe_update_tx_dca(adapter, tx_ring);
953#endif 953#endif
@@ -1022,7 +1022,7 @@ static int ixgbe_clean_rxonly(struct napi_struct *napi, int budget)
1022 1022
1023 r_idx = find_first_bit(q_vector->rxr_idx, adapter->num_rx_queues); 1023 r_idx = find_first_bit(q_vector->rxr_idx, adapter->num_rx_queues);
1024 rx_ring = &(adapter->rx_ring[r_idx]); 1024 rx_ring = &(adapter->rx_ring[r_idx]);
1025#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE) 1025#ifdef CONFIG_IXGBE_DCA
1026 if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) 1026 if (adapter->flags & IXGBE_FLAG_DCA_ENABLED)
1027 ixgbe_update_rx_dca(adapter, rx_ring); 1027 ixgbe_update_rx_dca(adapter, rx_ring);
1028#endif 1028#endif
@@ -1066,7 +1066,7 @@ static int ixgbe_clean_rxonly_many(struct napi_struct *napi, int budget)
1066 r_idx = find_first_bit(q_vector->rxr_idx, adapter->num_rx_queues); 1066 r_idx = find_first_bit(q_vector->rxr_idx, adapter->num_rx_queues);
1067 for (i = 0; i < q_vector->rxr_count; i++) { 1067 for (i = 0; i < q_vector->rxr_count; i++) {
1068 rx_ring = &(adapter->rx_ring[r_idx]); 1068 rx_ring = &(adapter->rx_ring[r_idx]);
1069#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE) 1069#ifdef CONFIG_IXGBE_DCA
1070 if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) 1070 if (adapter->flags & IXGBE_FLAG_DCA_ENABLED)
1071 ixgbe_update_rx_dca(adapter, rx_ring); 1071 ixgbe_update_rx_dca(adapter, rx_ring);
1072#endif 1072#endif
@@ -2155,7 +2155,7 @@ void ixgbe_down(struct ixgbe_adapter *adapter)
2155 2155
2156 netif_carrier_off(netdev); 2156 netif_carrier_off(netdev);
2157 2157
2158#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE) 2158#ifdef CONFIG_IXGBE_DCA
2159 if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) { 2159 if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) {
2160 adapter->flags &= ~IXGBE_FLAG_DCA_ENABLED; 2160 adapter->flags &= ~IXGBE_FLAG_DCA_ENABLED;
2161 dca_remove_requester(&adapter->pdev->dev); 2161 dca_remove_requester(&adapter->pdev->dev);
@@ -2167,7 +2167,7 @@ void ixgbe_down(struct ixgbe_adapter *adapter)
2167 ixgbe_clean_all_tx_rings(adapter); 2167 ixgbe_clean_all_tx_rings(adapter);
2168 ixgbe_clean_all_rx_rings(adapter); 2168 ixgbe_clean_all_rx_rings(adapter);
2169 2169
2170#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE) 2170#ifdef CONFIG_IXGBE_DCA
2171 /* since we reset the hardware DCA settings were cleared */ 2171 /* since we reset the hardware DCA settings were cleared */
2172 if (dca_add_requester(&adapter->pdev->dev) == 0) { 2172 if (dca_add_requester(&adapter->pdev->dev) == 0) {
2173 adapter->flags |= IXGBE_FLAG_DCA_ENABLED; 2173 adapter->flags |= IXGBE_FLAG_DCA_ENABLED;
@@ -2193,7 +2193,7 @@ static int ixgbe_poll(struct napi_struct *napi, int budget)
2193 struct ixgbe_adapter *adapter = q_vector->adapter; 2193 struct ixgbe_adapter *adapter = q_vector->adapter;
2194 int tx_cleaned, work_done = 0; 2194 int tx_cleaned, work_done = 0;
2195 2195
2196#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE) 2196#ifdef CONFIG_IXGBE_DCA
2197 if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) { 2197 if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) {
2198 ixgbe_update_tx_dca(adapter, adapter->tx_ring); 2198 ixgbe_update_tx_dca(adapter, adapter->tx_ring);
2199 ixgbe_update_rx_dca(adapter, adapter->rx_ring); 2199 ixgbe_update_rx_dca(adapter, adapter->rx_ring);
@@ -3922,7 +3922,7 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
3922 if (err) 3922 if (err)
3923 goto err_register; 3923 goto err_register;
3924 3924
3925#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE) 3925#ifdef CONFIG_IXGBE_DCA
3926 if (dca_add_requester(&pdev->dev) == 0) { 3926 if (dca_add_requester(&pdev->dev) == 0) {
3927 adapter->flags |= IXGBE_FLAG_DCA_ENABLED; 3927 adapter->flags |= IXGBE_FLAG_DCA_ENABLED;
3928 /* always use CB2 mode, difference is masked 3928 /* always use CB2 mode, difference is masked
@@ -3972,7 +3972,7 @@ static void __devexit ixgbe_remove(struct pci_dev *pdev)
3972 3972
3973 flush_scheduled_work(); 3973 flush_scheduled_work();
3974 3974
3975#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE) 3975#ifdef CONFIG_IXGBE_DCA
3976 if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) { 3976 if (adapter->flags & IXGBE_FLAG_DCA_ENABLED) {
3977 adapter->flags &= ~IXGBE_FLAG_DCA_ENABLED; 3977 adapter->flags &= ~IXGBE_FLAG_DCA_ENABLED;
3978 dca_remove_requester(&pdev->dev); 3978 dca_remove_requester(&pdev->dev);
@@ -4105,10 +4105,10 @@ static int __init ixgbe_init_module(void)
4105 4105
4106 printk(KERN_INFO "%s: %s\n", ixgbe_driver_name, ixgbe_copyright); 4106 printk(KERN_INFO "%s: %s\n", ixgbe_driver_name, ixgbe_copyright);
4107 4107
4108#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE) 4108#ifdef CONFIG_IXGBE_DCA
4109 dca_register_notify(&dca_notifier); 4109 dca_register_notify(&dca_notifier);
4110
4111#endif 4110#endif
4111
4112 ret = pci_register_driver(&ixgbe_driver); 4112 ret = pci_register_driver(&ixgbe_driver);
4113 return ret; 4113 return ret;
4114} 4114}
@@ -4123,13 +4123,13 @@ module_init(ixgbe_init_module);
4123 **/ 4123 **/
4124static void __exit ixgbe_exit_module(void) 4124static void __exit ixgbe_exit_module(void)
4125{ 4125{
4126#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE) 4126#ifdef CONFIG_IXGBE_DCA
4127 dca_unregister_notify(&dca_notifier); 4127 dca_unregister_notify(&dca_notifier);
4128#endif 4128#endif
4129 pci_unregister_driver(&ixgbe_driver); 4129 pci_unregister_driver(&ixgbe_driver);
4130} 4130}
4131 4131
4132#if defined(CONFIG_DCA) || defined(CONFIG_DCA_MODULE) 4132#ifdef CONFIG_IXGBE_DCA
4133static int ixgbe_notify_dca(struct notifier_block *nb, unsigned long event, 4133static int ixgbe_notify_dca(struct notifier_block *nb, unsigned long event,
4134 void *p) 4134 void *p)
4135{ 4135{
@@ -4140,7 +4140,7 @@ static int ixgbe_notify_dca(struct notifier_block *nb, unsigned long event,
4140 4140
4141 return ret_val ? NOTIFY_BAD : NOTIFY_DONE; 4141 return ret_val ? NOTIFY_BAD : NOTIFY_DONE;
4142} 4142}
4143#endif /* CONFIG_DCA or CONFIG_DCA_MODULE */ 4143#endif /* CONFIG_IXGBE_DCA */
4144 4144
4145module_exit(ixgbe_exit_module); 4145module_exit(ixgbe_exit_module);
4146 4146
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index 6dce901c7f45..a9aebad52652 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -188,7 +188,7 @@ struct myri10ge_slice_state {
188 dma_addr_t fw_stats_bus; 188 dma_addr_t fw_stats_bus;
189 int watchdog_tx_done; 189 int watchdog_tx_done;
190 int watchdog_tx_req; 190 int watchdog_tx_req;
191#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE) 191#ifdef CONFIG_MYRI10GE_DCA
192 int cached_dca_tag; 192 int cached_dca_tag;
193 int cpu; 193 int cpu;
194 __be32 __iomem *dca_tag; 194 __be32 __iomem *dca_tag;
@@ -220,7 +220,7 @@ struct myri10ge_priv {
220 int msi_enabled; 220 int msi_enabled;
221 int msix_enabled; 221 int msix_enabled;
222 struct msix_entry *msix_vectors; 222 struct msix_entry *msix_vectors;
223#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE) 223#ifdef CONFIG_MYRI10GE_DCA
224 int dca_enabled; 224 int dca_enabled;
225#endif 225#endif
226 u32 link_state; 226 u32 link_state;
@@ -902,7 +902,7 @@ static int myri10ge_reset(struct myri10ge_priv *mgp)
902 struct myri10ge_slice_state *ss; 902 struct myri10ge_slice_state *ss;
903 int i, status; 903 int i, status;
904 size_t bytes; 904 size_t bytes;
905#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE) 905#ifdef CONFIG_MYRI10GE_DCA
906 unsigned long dca_tag_off; 906 unsigned long dca_tag_off;
907#endif 907#endif
908 908
@@ -1012,7 +1012,7 @@ static int myri10ge_reset(struct myri10ge_priv *mgp)
1012 } 1012 }
1013 put_be32(htonl(mgp->intr_coal_delay), mgp->intr_coal_delay_ptr); 1013 put_be32(htonl(mgp->intr_coal_delay), mgp->intr_coal_delay_ptr);
1014 1014
1015#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE) 1015#ifdef CONFIG_MYRI10GE_DCA
1016 status = myri10ge_send_cmd(mgp, MXGEFW_CMD_GET_DCA_OFFSET, &cmd, 0); 1016 status = myri10ge_send_cmd(mgp, MXGEFW_CMD_GET_DCA_OFFSET, &cmd, 0);
1017 dca_tag_off = cmd.data0; 1017 dca_tag_off = cmd.data0;
1018 for (i = 0; i < mgp->num_slices; i++) { 1018 for (i = 0; i < mgp->num_slices; i++) {
@@ -1051,7 +1051,7 @@ static int myri10ge_reset(struct myri10ge_priv *mgp)
1051 return status; 1051 return status;
1052} 1052}
1053 1053
1054#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE) 1054#ifdef CONFIG_MYRI10GE_DCA
1055static void 1055static void
1056myri10ge_write_dca(struct myri10ge_slice_state *ss, int cpu, int tag) 1056myri10ge_write_dca(struct myri10ge_slice_state *ss, int cpu, int tag)
1057{ 1057{
@@ -1505,7 +1505,7 @@ static int myri10ge_poll(struct napi_struct *napi, int budget)
1505 struct net_device *netdev = ss->mgp->dev; 1505 struct net_device *netdev = ss->mgp->dev;
1506 int work_done; 1506 int work_done;
1507 1507
1508#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE) 1508#ifdef CONFIG_MYRI10GE_DCA
1509 if (ss->mgp->dca_enabled) 1509 if (ss->mgp->dca_enabled)
1510 myri10ge_update_dca(ss); 1510 myri10ge_update_dca(ss);
1511#endif 1511#endif
@@ -1736,7 +1736,7 @@ static const char myri10ge_gstrings_main_stats[][ETH_GSTRING_LEN] = {
1736 "tx_boundary", "WC", "irq", "MSI", "MSIX", 1736 "tx_boundary", "WC", "irq", "MSI", "MSIX",
1737 "read_dma_bw_MBs", "write_dma_bw_MBs", "read_write_dma_bw_MBs", 1737 "read_dma_bw_MBs", "write_dma_bw_MBs", "read_write_dma_bw_MBs",
1738 "serial_number", "watchdog_resets", 1738 "serial_number", "watchdog_resets",
1739#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE) 1739#ifdef CONFIG_MYRI10GE_DCA
1740 "dca_capable_firmware", "dca_device_present", 1740 "dca_capable_firmware", "dca_device_present",
1741#endif 1741#endif
1742 "link_changes", "link_up", "dropped_link_overflow", 1742 "link_changes", "link_up", "dropped_link_overflow",
@@ -1815,7 +1815,7 @@ myri10ge_get_ethtool_stats(struct net_device *netdev,
1815 data[i++] = (unsigned int)mgp->read_write_dma; 1815 data[i++] = (unsigned int)mgp->read_write_dma;
1816 data[i++] = (unsigned int)mgp->serial_number; 1816 data[i++] = (unsigned int)mgp->serial_number;
1817 data[i++] = (unsigned int)mgp->watchdog_resets; 1817 data[i++] = (unsigned int)mgp->watchdog_resets;
1818#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE) 1818#ifdef CONFIG_MYRI10GE_DCA
1819 data[i++] = (unsigned int)(mgp->ss[0].dca_tag != NULL); 1819 data[i++] = (unsigned int)(mgp->ss[0].dca_tag != NULL);
1820 data[i++] = (unsigned int)(mgp->dca_enabled); 1820 data[i++] = (unsigned int)(mgp->dca_enabled);
1821#endif 1821#endif
@@ -3844,7 +3844,7 @@ static int myri10ge_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
3844 dev_err(&pdev->dev, "failed reset\n"); 3844 dev_err(&pdev->dev, "failed reset\n");
3845 goto abort_with_slices; 3845 goto abort_with_slices;
3846 } 3846 }
3847#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE) 3847#ifdef CONFIG_MYRI10GE_DCA
3848 myri10ge_setup_dca(mgp); 3848 myri10ge_setup_dca(mgp);
3849#endif 3849#endif
3850 pci_set_drvdata(pdev, mgp); 3850 pci_set_drvdata(pdev, mgp);
@@ -3948,7 +3948,7 @@ static void myri10ge_remove(struct pci_dev *pdev)
3948 netdev = mgp->dev; 3948 netdev = mgp->dev;
3949 unregister_netdev(netdev); 3949 unregister_netdev(netdev);
3950 3950
3951#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE) 3951#ifdef CONFIG_MYRI10GE_DCA
3952 myri10ge_teardown_dca(mgp); 3952 myri10ge_teardown_dca(mgp);
3953#endif 3953#endif
3954 myri10ge_dummy_rdma(mgp, 0); 3954 myri10ge_dummy_rdma(mgp, 0);
@@ -3993,7 +3993,7 @@ static struct pci_driver myri10ge_driver = {
3993#endif 3993#endif
3994}; 3994};
3995 3995
3996#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE) 3996#ifdef CONFIG_MYRI10GE_DCA
3997static int 3997static int
3998myri10ge_notify_dca(struct notifier_block *nb, unsigned long event, void *p) 3998myri10ge_notify_dca(struct notifier_block *nb, unsigned long event, void *p)
3999{ 3999{
@@ -4024,7 +4024,7 @@ static __init int myri10ge_init_module(void)
4024 myri10ge_driver.name, myri10ge_rss_hash); 4024 myri10ge_driver.name, myri10ge_rss_hash);
4025 myri10ge_rss_hash = MXGEFW_RSS_HASH_TYPE_SRC_PORT; 4025 myri10ge_rss_hash = MXGEFW_RSS_HASH_TYPE_SRC_PORT;
4026 } 4026 }
4027#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE) 4027#ifdef CONFIG_MYRI10GE_DCA
4028 dca_register_notify(&myri10ge_dca_notifier); 4028 dca_register_notify(&myri10ge_dca_notifier);
4029#endif 4029#endif
4030 if (myri10ge_max_slices > MYRI10GE_MAX_SLICES) 4030 if (myri10ge_max_slices > MYRI10GE_MAX_SLICES)
@@ -4037,7 +4037,7 @@ module_init(myri10ge_init_module);
4037 4037
4038static __exit void myri10ge_cleanup_module(void) 4038static __exit void myri10ge_cleanup_module(void)
4039{ 4039{
4040#if (defined CONFIG_DCA) || (defined CONFIG_DCA_MODULE) 4040#ifdef CONFIG_MYRI10GE_DCA
4041 dca_unregister_notify(&myri10ge_dca_notifier); 4041 dca_unregister_notify(&myri10ge_dca_notifier);
4042#endif 4042#endif
4043 pci_unregister_driver(&myri10ge_driver); 4043 pci_unregister_driver(&myri10ge_driver);
diff --git a/drivers/net/pcmcia/Kconfig b/drivers/net/pcmcia/Kconfig
index e8f55d8ed7a9..9b8f793b1cc8 100644
--- a/drivers/net/pcmcia/Kconfig
+++ b/drivers/net/pcmcia/Kconfig
@@ -111,7 +111,7 @@ config ARCNET_COM20020_CS
111 111
112config PCMCIA_IBMTR 112config PCMCIA_IBMTR
113 tristate "IBM PCMCIA tokenring adapter support" 113 tristate "IBM PCMCIA tokenring adapter support"
114 depends on IBMTR!=y && TR && !64BIT 114 depends on IBMTR!=y && TR
115 help 115 help
116 Say Y here if you intend to attach this type of Token Ring PCMCIA 116 Say Y here if you intend to attach this type of Token Ring PCMCIA
117 card to your computer. You then also need to say Y to "Token Ring 117 card to your computer. You then also need to say Y to "Token Ring
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index f11e900b437b..e11b03b2b25a 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -309,11 +309,6 @@ void phy_disconnect(struct phy_device *phydev)
309} 309}
310EXPORT_SYMBOL(phy_disconnect); 310EXPORT_SYMBOL(phy_disconnect);
311 311
312static int phy_compare_id(struct device *dev, void *data)
313{
314 return strcmp((char *)data, dev->bus_id) ? 0 : 1;
315}
316
317/** 312/**
318 * phy_attach - attach a network device to a particular PHY device 313 * phy_attach - attach a network device to a particular PHY device
319 * @dev: network device to attach 314 * @dev: network device to attach
@@ -337,8 +332,7 @@ struct phy_device *phy_attach(struct net_device *dev,
337 332
338 /* Search the list of PHY devices on the mdio bus for the 333 /* Search the list of PHY devices on the mdio bus for the
339 * PHY with the requested name */ 334 * PHY with the requested name */
340 d = bus_find_device(bus, NULL, (void *)bus_id, phy_compare_id); 335 d = bus_find_device_by_name(bus, NULL, bus_id);
341
342 if (d) { 336 if (d) {
343 phydev = to_phy_device(d); 337 phydev = to_phy_device(d);
344 } else { 338 } else {
diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c
index 0ca0fcbb7c01..7e857e938adb 100644
--- a/drivers/net/ppp_generic.c
+++ b/drivers/net/ppp_generic.c
@@ -866,8 +866,8 @@ static int __init ppp_init(void)
866 err = PTR_ERR(ppp_class); 866 err = PTR_ERR(ppp_class);
867 goto out_chrdev; 867 goto out_chrdev;
868 } 868 }
869 device_create_drvdata(ppp_class, NULL, MKDEV(PPP_MAJOR, 0), 869 device_create(ppp_class, NULL, MKDEV(PPP_MAJOR, 0), NULL,
870 NULL, "ppp"); 870 "ppp");
871 } 871 }
872 872
873out: 873out:
@@ -2127,13 +2127,9 @@ ppp_set_compress(struct ppp *ppp, unsigned long arg)
2127 || ccp_option[1] < 2 || ccp_option[1] > data.length) 2127 || ccp_option[1] < 2 || ccp_option[1] > data.length)
2128 goto out; 2128 goto out;
2129 2129
2130 cp = find_compressor(ccp_option[0]); 2130 cp = try_then_request_module(
2131#ifdef CONFIG_KMOD 2131 find_compressor(ccp_option[0]),
2132 if (!cp) { 2132 "ppp-compress-%d", ccp_option[0]);
2133 request_module("ppp-compress-%d", ccp_option[0]);
2134 cp = find_compressor(ccp_option[0]);
2135 }
2136#endif /* CONFIG_KMOD */
2137 if (!cp) 2133 if (!cp)
2138 goto out; 2134 goto out;
2139 2135
diff --git a/drivers/net/pppox.c b/drivers/net/pppox.c
index c6898c1fc54d..03aecc97fb45 100644
--- a/drivers/net/pppox.c
+++ b/drivers/net/pppox.c
@@ -115,13 +115,8 @@ static int pppox_create(struct net *net, struct socket *sock, int protocol)
115 goto out; 115 goto out;
116 116
117 rc = -EPROTONOSUPPORT; 117 rc = -EPROTONOSUPPORT;
118#ifdef CONFIG_KMOD 118 if (!pppox_protos[protocol])
119 if (!pppox_protos[protocol]) { 119 request_module("pppox-proto-%d", protocol);
120 char buffer[32];
121 sprintf(buffer, "pppox-proto-%d", protocol);
122 request_module(buffer);
123 }
124#endif
125 if (!pppox_protos[protocol] || 120 if (!pppox_protos[protocol] ||
126 !try_module_get(pppox_protos[protocol]->owner)) 121 !try_module_get(pppox_protos[protocol]->owner))
127 goto out; 122 goto out;
diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
index b39d1cc1ef04..a24bb68887ab 100644
--- a/drivers/net/sh_eth.c
+++ b/drivers/net/sh_eth.c
@@ -1205,11 +1205,12 @@ static int sh_eth_drv_probe(struct platform_device *pdev)
1205 devno = 0; 1205 devno = 0;
1206 1206
1207 ndev->dma = -1; 1207 ndev->dma = -1;
1208 ndev->irq = platform_get_irq(pdev, 0); 1208 ret = platform_get_irq(pdev, 0);
1209 if (ndev->irq < 0) { 1209 if (ret < 0) {
1210 ret = -ENODEV; 1210 ret = -ENODEV;
1211 goto out_release; 1211 goto out_release;
1212 } 1212 }
1213 ndev->irq = ret;
1213 1214
1214 SET_NETDEV_DEV(ndev, &pdev->dev); 1215 SET_NETDEV_DEV(ndev, &pdev->dev);
1215 1216
diff --git a/drivers/net/usb/catc.c b/drivers/net/usb/catc.c
index 22c17bbacb69..466a89e24444 100644
--- a/drivers/net/usb/catc.c
+++ b/drivers/net/usb/catc.c
@@ -456,7 +456,7 @@ static void catc_tx_timeout(struct net_device *netdev)
456{ 456{
457 struct catc *catc = netdev_priv(netdev); 457 struct catc *catc = netdev_priv(netdev);
458 458
459 warn("Transmit timed out."); 459 dev_warn(&netdev->dev, "Transmit timed out.\n");
460 usb_unlink_urb(catc->tx_urb); 460 usb_unlink_urb(catc->tx_urb);
461} 461}
462 462
@@ -847,7 +847,8 @@ static int catc_probe(struct usb_interface *intf, const struct usb_device_id *id
847 dbg("64k Memory\n"); 847 dbg("64k Memory\n");
848 break; 848 break;
849 default: 849 default:
850 warn("Couldn't detect memory size, assuming 32k"); 850 dev_warn(&intf->dev,
851 "Couldn't detect memory size, assuming 32k\n");
851 case 0x87654321: 852 case 0x87654321:
852 catc_set_reg(catc, TxBufCount, 4); 853 catc_set_reg(catc, TxBufCount, 4);
853 catc_set_reg(catc, RxBufCount, 16); 854 catc_set_reg(catc, RxBufCount, 16);
@@ -953,7 +954,8 @@ static int __init catc_init(void)
953{ 954{
954 int result = usb_register(&catc_driver); 955 int result = usb_register(&catc_driver);
955 if (result == 0) 956 if (result == 0)
956 info(DRIVER_VERSION " " DRIVER_DESC); 957 printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":"
958 DRIVER_DESC "\n");
957 return result; 959 return result;
958} 960}
959 961
diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c
index d6829db51b45..fdbf3be24fda 100644
--- a/drivers/net/usb/kaweth.c
+++ b/drivers/net/usb/kaweth.c
@@ -832,7 +832,7 @@ static int kaweth_start_xmit(struct sk_buff *skb, struct net_device *net)
832 832
833 if((res = usb_submit_urb(kaweth->tx_urb, GFP_ATOMIC))) 833 if((res = usb_submit_urb(kaweth->tx_urb, GFP_ATOMIC)))
834 { 834 {
835 warn("kaweth failed tx_urb %d", res); 835 dev_warn(&net->dev, "kaweth failed tx_urb %d\n", res);
836skip: 836skip:
837 kaweth->stats.tx_errors++; 837 kaweth->stats.tx_errors++;
838 838
@@ -924,7 +924,7 @@ static void kaweth_tx_timeout(struct net_device *net)
924{ 924{
925 struct kaweth_device *kaweth = netdev_priv(net); 925 struct kaweth_device *kaweth = netdev_priv(net);
926 926
927 warn("%s: Tx timed out. Resetting.", net->name); 927 dev_warn(&net->dev, "%s: Tx timed out. Resetting.\n", net->name);
928 kaweth->stats.tx_errors++; 928 kaweth->stats.tx_errors++;
929 net->trans_start = jiffies; 929 net->trans_start = jiffies;
930 930
@@ -1016,10 +1016,10 @@ static int kaweth_probe(
1016 */ 1016 */
1017 1017
1018 if (le16_to_cpu(dev->descriptor.bcdDevice) >> 8) { 1018 if (le16_to_cpu(dev->descriptor.bcdDevice) >> 8) {
1019 info("Firmware present in device."); 1019 dev_info(&intf->dev, "Firmware present in device.\n");
1020 } else { 1020 } else {
1021 /* Download the firmware */ 1021 /* Download the firmware */
1022 info("Downloading firmware..."); 1022 dev_info(&intf->dev, "Downloading firmware...\n");
1023 kaweth->firmware_buf = (__u8 *)__get_free_page(GFP_KERNEL); 1023 kaweth->firmware_buf = (__u8 *)__get_free_page(GFP_KERNEL);
1024 if ((result = kaweth_download_firmware(kaweth, 1024 if ((result = kaweth_download_firmware(kaweth,
1025 "kaweth/new_code.bin", 1025 "kaweth/new_code.bin",
@@ -1061,7 +1061,7 @@ static int kaweth_probe(
1061 } 1061 }
1062 1062
1063 /* Device will now disappear for a moment... */ 1063 /* Device will now disappear for a moment... */
1064 info("Firmware loaded. I'll be back..."); 1064 dev_info(&intf->dev, "Firmware loaded. I'll be back...\n");
1065err_fw: 1065err_fw:
1066 free_page((unsigned long)kaweth->firmware_buf); 1066 free_page((unsigned long)kaweth->firmware_buf);
1067 free_netdev(netdev); 1067 free_netdev(netdev);
@@ -1075,10 +1075,10 @@ err_fw:
1075 goto err_free_netdev; 1075 goto err_free_netdev;
1076 } 1076 }
1077 1077
1078 info("Statistics collection: %x", kaweth->configuration.statistics_mask); 1078 dev_info(&intf->dev, "Statistics collection: %x\n", kaweth->configuration.statistics_mask);
1079 info("Multicast filter limit: %x", kaweth->configuration.max_multicast_filters & ((1 << 15) - 1)); 1079 dev_info(&intf->dev, "Multicast filter limit: %x\n", kaweth->configuration.max_multicast_filters & ((1 << 15) - 1));
1080 info("MTU: %d", le16_to_cpu(kaweth->configuration.segment_size)); 1080 dev_info(&intf->dev, "MTU: %d\n", le16_to_cpu(kaweth->configuration.segment_size));
1081 info("Read MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x", 1081 dev_info(&intf->dev, "Read MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x\n",
1082 (int)kaweth->configuration.hw_addr[0], 1082 (int)kaweth->configuration.hw_addr[0],
1083 (int)kaweth->configuration.hw_addr[1], 1083 (int)kaweth->configuration.hw_addr[1],
1084 (int)kaweth->configuration.hw_addr[2], 1084 (int)kaweth->configuration.hw_addr[2],
@@ -1174,7 +1174,8 @@ err_fw:
1174 goto err_intfdata; 1174 goto err_intfdata;
1175 } 1175 }
1176 1176
1177 info("kaweth interface created at %s", kaweth->net->name); 1177 dev_info(&intf->dev, "kaweth interface created at %s\n",
1178 kaweth->net->name);
1178 1179
1179 dbg("Kaweth probe returning."); 1180 dbg("Kaweth probe returning.");
1180 1181
@@ -1205,11 +1206,11 @@ static void kaweth_disconnect(struct usb_interface *intf)
1205 struct kaweth_device *kaweth = usb_get_intfdata(intf); 1206 struct kaweth_device *kaweth = usb_get_intfdata(intf);
1206 struct net_device *netdev; 1207 struct net_device *netdev;
1207 1208
1208 info("Unregistering"); 1209 dev_info(&intf->dev, "Unregistering\n");
1209 1210
1210 usb_set_intfdata(intf, NULL); 1211 usb_set_intfdata(intf, NULL);
1211 if (!kaweth) { 1212 if (!kaweth) {
1212 warn("unregistering non-existant device"); 1213 dev_warn(&intf->dev, "unregistering non-existant device\n");
1213 return; 1214 return;
1214 } 1215 }
1215 netdev = kaweth->net; 1216 netdev = kaweth->net;
@@ -1269,7 +1270,7 @@ static int usb_start_wait_urb(struct urb *urb, int timeout, int* actual_length)
1269 1270
1270 if (!wait_event_timeout(awd.wqh, awd.done, timeout)) { 1271 if (!wait_event_timeout(awd.wqh, awd.done, timeout)) {
1271 // timeout 1272 // timeout
1272 warn("usb_control/bulk_msg: timeout"); 1273 dev_warn(&urb->dev->dev, "usb_control/bulk_msg: timeout\n");
1273 usb_kill_urb(urb); // remove urb safely 1274 usb_kill_urb(urb); // remove urb safely
1274 status = -ETIMEDOUT; 1275 status = -ETIMEDOUT;
1275 } 1276 }
diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c
index 38b90e7a7ed3..7914867110ed 100644
--- a/drivers/net/usb/pegasus.c
+++ b/drivers/net/usb/pegasus.c
@@ -168,7 +168,7 @@ static int get_registers(pegasus_t * pegasus, __u16 indx, __u16 size,
168 netif_device_detach(pegasus->net); 168 netif_device_detach(pegasus->net);
169 if (netif_msg_drv(pegasus) && printk_ratelimit()) 169 if (netif_msg_drv(pegasus) && printk_ratelimit())
170 dev_err(&pegasus->intf->dev, "%s, status %d\n", 170 dev_err(&pegasus->intf->dev, "%s, status %d\n",
171 __FUNCTION__, ret); 171 __func__, ret);
172 goto out; 172 goto out;
173 } 173 }
174 174
@@ -192,7 +192,7 @@ static int set_registers(pegasus_t * pegasus, __u16 indx, __u16 size,
192 if (!buffer) { 192 if (!buffer) {
193 if (netif_msg_drv(pegasus)) 193 if (netif_msg_drv(pegasus))
194 dev_warn(&pegasus->intf->dev, "out of memory in %s\n", 194 dev_warn(&pegasus->intf->dev, "out of memory in %s\n",
195 __FUNCTION__); 195 __func__);
196 return -ENOMEM; 196 return -ENOMEM;
197 } 197 }
198 memcpy(buffer, data, size); 198 memcpy(buffer, data, size);
diff --git a/drivers/net/usb/rtl8150.c b/drivers/net/usb/rtl8150.c
index df56a518691c..6133401ebc67 100644
--- a/drivers/net/usb/rtl8150.c
+++ b/drivers/net/usb/rtl8150.c
@@ -221,7 +221,7 @@ static void ctrl_callback(struct urb *urb)
221 case -ENOENT: 221 case -ENOENT:
222 break; 222 break;
223 default: 223 default:
224 warn("ctrl urb status %d", urb->status); 224 dev_warn(&urb->dev->dev, "ctrl urb status %d\n", urb->status);
225 } 225 }
226 dev = urb->context; 226 dev = urb->context;
227 clear_bit(RX_REG_SET, &dev->flags); 227 clear_bit(RX_REG_SET, &dev->flags);
@@ -441,10 +441,10 @@ static void read_bulk_callback(struct urb *urb)
441 case -ENOENT: 441 case -ENOENT:
442 return; /* the urb is in unlink state */ 442 return; /* the urb is in unlink state */
443 case -ETIME: 443 case -ETIME:
444 warn("may be reset is needed?.."); 444 dev_warn(&urb->dev->dev, "may be reset is needed?..\n");
445 goto goon; 445 goto goon;
446 default: 446 default:
447 warn("Rx status %d", urb->status); 447 dev_warn(&urb->dev->dev, "Rx status %d\n", urb->status);
448 goto goon; 448 goto goon;
449 } 449 }
450 450
@@ -538,7 +538,8 @@ static void write_bulk_callback(struct urb *urb)
538 if (!netif_device_present(dev->netdev)) 538 if (!netif_device_present(dev->netdev))
539 return; 539 return;
540 if (urb->status) 540 if (urb->status)
541 info("%s: Tx status %d", dev->netdev->name, urb->status); 541 dev_info(&urb->dev->dev, "%s: Tx status %d\n",
542 dev->netdev->name, urb->status);
542 dev->netdev->trans_start = jiffies; 543 dev->netdev->trans_start = jiffies;
543 netif_wake_queue(dev->netdev); 544 netif_wake_queue(dev->netdev);
544} 545}
@@ -561,7 +562,8 @@ static void intr_callback(struct urb *urb)
561 return; 562 return;
562 /* -EPIPE: should clear the halt */ 563 /* -EPIPE: should clear the halt */
563 default: 564 default:
564 info("%s: intr status %d", dev->netdev->name, urb->status); 565 dev_info(&urb->dev->dev, "%s: intr status %d\n",
566 dev->netdev->name, urb->status);
565 goto resubmit; 567 goto resubmit;
566 } 568 }
567 569
@@ -665,7 +667,7 @@ static int enable_net_traffic(rtl8150_t * dev)
665 u8 cr, tcr, rcr, msr; 667 u8 cr, tcr, rcr, msr;
666 668
667 if (!rtl8150_reset(dev)) { 669 if (!rtl8150_reset(dev)) {
668 warn("%s - device reset failed", __FUNCTION__); 670 dev_warn(&dev->udev->dev, "device reset failed\n");
669 } 671 }
670 /* RCR bit7=1 attach Rx info at the end; =0 HW CRC (which is broken) */ 672 /* RCR bit7=1 attach Rx info at the end; =0 HW CRC (which is broken) */
671 rcr = 0x9e; 673 rcr = 0x9e;
@@ -699,7 +701,7 @@ static struct net_device_stats *rtl8150_netdev_stats(struct net_device *dev)
699static void rtl8150_tx_timeout(struct net_device *netdev) 701static void rtl8150_tx_timeout(struct net_device *netdev)
700{ 702{
701 rtl8150_t *dev = netdev_priv(netdev); 703 rtl8150_t *dev = netdev_priv(netdev);
702 warn("%s: Tx timeout.", netdev->name); 704 dev_warn(&netdev->dev, "Tx timeout.\n");
703 usb_unlink_urb(dev->tx_urb); 705 usb_unlink_urb(dev->tx_urb);
704 dev->stats.tx_errors++; 706 dev->stats.tx_errors++;
705} 707}
@@ -710,12 +712,12 @@ static void rtl8150_set_multicast(struct net_device *netdev)
710 netif_stop_queue(netdev); 712 netif_stop_queue(netdev);
711 if (netdev->flags & IFF_PROMISC) { 713 if (netdev->flags & IFF_PROMISC) {
712 dev->rx_creg |= cpu_to_le16(0x0001); 714 dev->rx_creg |= cpu_to_le16(0x0001);
713 info("%s: promiscuous mode", netdev->name); 715 dev_info(&netdev->dev, "%s: promiscuous mode\n", netdev->name);
714 } else if (netdev->mc_count || 716 } else if (netdev->mc_count ||
715 (netdev->flags & IFF_ALLMULTI)) { 717 (netdev->flags & IFF_ALLMULTI)) {
716 dev->rx_creg &= cpu_to_le16(0xfffe); 718 dev->rx_creg &= cpu_to_le16(0xfffe);
717 dev->rx_creg |= cpu_to_le16(0x0002); 719 dev->rx_creg |= cpu_to_le16(0x0002);
718 info("%s: allmulti set", netdev->name); 720 dev_info(&netdev->dev, "%s: allmulti set\n", netdev->name);
719 } else { 721 } else {
720 /* ~RX_MULTICAST, ~RX_PROMISCUOUS */ 722 /* ~RX_MULTICAST, ~RX_PROMISCUOUS */
721 dev->rx_creg &= cpu_to_le16(0x00fc); 723 dev->rx_creg &= cpu_to_le16(0x00fc);
@@ -740,7 +742,7 @@ static int rtl8150_start_xmit(struct sk_buff *skb, struct net_device *netdev)
740 if (res == -ENODEV) 742 if (res == -ENODEV)
741 netif_device_detach(dev->netdev); 743 netif_device_detach(dev->netdev);
742 else { 744 else {
743 warn("failed tx_urb %d\n", res); 745 dev_warn(&netdev->dev, "failed tx_urb %d\n", res);
744 dev->stats.tx_errors++; 746 dev->stats.tx_errors++;
745 netif_start_queue(netdev); 747 netif_start_queue(netdev);
746 } 748 }
@@ -783,7 +785,7 @@ static int rtl8150_open(struct net_device *netdev)
783 if ((res = usb_submit_urb(dev->rx_urb, GFP_KERNEL))) { 785 if ((res = usb_submit_urb(dev->rx_urb, GFP_KERNEL))) {
784 if (res == -ENODEV) 786 if (res == -ENODEV)
785 netif_device_detach(dev->netdev); 787 netif_device_detach(dev->netdev);
786 warn("%s: rx_urb submit failed: %d", __FUNCTION__, res); 788 dev_warn(&netdev->dev, "rx_urb submit failed: %d\n", res);
787 return res; 789 return res;
788 } 790 }
789 usb_fill_int_urb(dev->intr_urb, dev->udev, usb_rcvintpipe(dev->udev, 3), 791 usb_fill_int_urb(dev->intr_urb, dev->udev, usb_rcvintpipe(dev->udev, 3),
@@ -792,7 +794,7 @@ static int rtl8150_open(struct net_device *netdev)
792 if ((res = usb_submit_urb(dev->intr_urb, GFP_KERNEL))) { 794 if ((res = usb_submit_urb(dev->intr_urb, GFP_KERNEL))) {
793 if (res == -ENODEV) 795 if (res == -ENODEV)
794 netif_device_detach(dev->netdev); 796 netif_device_detach(dev->netdev);
795 warn("%s: intr_urb submit failed: %d", __FUNCTION__, res); 797 dev_warn(&netdev->dev, "intr_urb submit failed: %d\n", res);
796 usb_kill_urb(dev->rx_urb); 798 usb_kill_urb(dev->rx_urb);
797 return res; 799 return res;
798 } 800 }
@@ -947,7 +949,7 @@ static int rtl8150_probe(struct usb_interface *intf,
947 goto out2; 949 goto out2;
948 } 950 }
949 951
950 info("%s: rtl8150 is detected", netdev->name); 952 dev_info(&intf->dev, "%s: rtl8150 is detected\n", netdev->name);
951 953
952 return 0; 954 return 0;
953 955
@@ -984,7 +986,8 @@ static void rtl8150_disconnect(struct usb_interface *intf)
984 986
985static int __init usb_rtl8150_init(void) 987static int __init usb_rtl8150_init(void)
986{ 988{
987 info(DRIVER_DESC " " DRIVER_VERSION); 989 printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":"
990 DRIVER_DESC "\n");
988 return usb_register(&rtl8150_driver); 991 return usb_register(&rtl8150_driver);
989} 992}
990 993
diff --git a/drivers/net/wan/cosa.c b/drivers/net/wan/cosa.c
index f14051556c87..7f97f8d08c39 100644
--- a/drivers/net/wan/cosa.c
+++ b/drivers/net/wan/cosa.c
@@ -388,8 +388,8 @@ static int __init cosa_init(void)
388 goto out_chrdev; 388 goto out_chrdev;
389 } 389 }
390 for (i = 0; i < nr_cards; i++) 390 for (i = 0; i < nr_cards; i++)
391 device_create_drvdata(cosa_class, NULL, MKDEV(cosa_major, i), 391 device_create(cosa_class, NULL, MKDEV(cosa_major, i), NULL,
392 NULL, "cosa%d", i); 392 "cosa%d", i);
393 err = 0; 393 err = 0;
394 goto out; 394 goto out;
395 395
diff --git a/drivers/net/wan/lmc/lmc_main.c b/drivers/net/wan/lmc/lmc_main.c
index f80640f5a744..d7bb63e616b5 100644
--- a/drivers/net/wan/lmc/lmc_main.c
+++ b/drivers/net/wan/lmc/lmc_main.c
@@ -122,7 +122,6 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
122 * Most functions mess with the structure 122 * Most functions mess with the structure
123 * Disable interrupts while we do the polling 123 * Disable interrupts while we do the polling
124 */ 124 */
125 spin_lock_irqsave(&sc->lmc_lock, flags);
126 125
127 switch (cmd) { 126 switch (cmd) {
128 /* 127 /*
@@ -152,6 +151,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
152 break; 151 break;
153 } 152 }
154 153
154 spin_lock_irqsave(&sc->lmc_lock, flags);
155 sc->lmc_media->set_status (sc, &ctl); 155 sc->lmc_media->set_status (sc, &ctl);
156 156
157 if(ctl.crc_length != sc->ictl.crc_length) { 157 if(ctl.crc_length != sc->ictl.crc_length) {
@@ -161,6 +161,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
161 else 161 else
162 sc->TxDescriptControlInit &= ~LMC_TDES_ADD_CRC_DISABLE; 162 sc->TxDescriptControlInit &= ~LMC_TDES_ADD_CRC_DISABLE;
163 } 163 }
164 spin_unlock_irqrestore(&sc->lmc_lock, flags);
164 165
165 ret = 0; 166 ret = 0;
166 break; 167 break;
@@ -187,15 +188,18 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
187 break; /* no change */ 188 break; /* no change */
188 } 189 }
189 190
191 spin_lock_irqsave(&sc->lmc_lock, flags);
190 lmc_proto_close(sc); 192 lmc_proto_close(sc);
191 193
192 sc->if_type = new_type; 194 sc->if_type = new_type;
193 lmc_proto_attach(sc); 195 lmc_proto_attach(sc);
194 ret = lmc_proto_open(sc); 196 ret = lmc_proto_open(sc);
197 spin_unlock_irqrestore(&sc->lmc_lock, flags);
195 break; 198 break;
196 } 199 }
197 200
198 case LMCIOCGETXINFO: /*fold01*/ 201 case LMCIOCGETXINFO: /*fold01*/
202 spin_lock_irqsave(&sc->lmc_lock, flags);
199 sc->lmc_xinfo.Magic0 = 0xBEEFCAFE; 203 sc->lmc_xinfo.Magic0 = 0xBEEFCAFE;
200 204
201 sc->lmc_xinfo.PciCardType = sc->lmc_cardtype; 205 sc->lmc_xinfo.PciCardType = sc->lmc_cardtype;
@@ -208,6 +212,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
208 sc->lmc_xinfo.MaxFrameSize = LMC_PKT_BUF_SZ; 212 sc->lmc_xinfo.MaxFrameSize = LMC_PKT_BUF_SZ;
209 sc->lmc_xinfo.link_status = sc->lmc_media->get_link_status (sc); 213 sc->lmc_xinfo.link_status = sc->lmc_media->get_link_status (sc);
210 sc->lmc_xinfo.mii_reg16 = lmc_mii_readreg (sc, 0, 16); 214 sc->lmc_xinfo.mii_reg16 = lmc_mii_readreg (sc, 0, 16);
215 spin_unlock_irqrestore(&sc->lmc_lock, flags);
211 216
212 sc->lmc_xinfo.Magic1 = 0xDEADBEEF; 217 sc->lmc_xinfo.Magic1 = 0xDEADBEEF;
213 218
@@ -220,6 +225,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
220 break; 225 break;
221 226
222 case LMCIOCGETLMCSTATS: 227 case LMCIOCGETLMCSTATS:
228 spin_lock_irqsave(&sc->lmc_lock, flags);
223 if (sc->lmc_cardtype == LMC_CARDTYPE_T1) { 229 if (sc->lmc_cardtype == LMC_CARDTYPE_T1) {
224 lmc_mii_writereg(sc, 0, 17, T1FRAMER_FERR_LSB); 230 lmc_mii_writereg(sc, 0, 17, T1FRAMER_FERR_LSB);
225 sc->extra_stats.framingBitErrorCount += 231 sc->extra_stats.framingBitErrorCount +=
@@ -243,6 +249,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
243 sc->extra_stats.severelyErroredFrameCount += 249 sc->extra_stats.severelyErroredFrameCount +=
244 regVal & T1FRAMER_SEF_MASK; 250 regVal & T1FRAMER_SEF_MASK;
245 } 251 }
252 spin_unlock_irqrestore(&sc->lmc_lock, flags);
246 if (copy_to_user(ifr->ifr_data, &sc->lmc_device->stats, 253 if (copy_to_user(ifr->ifr_data, &sc->lmc_device->stats,
247 sizeof(sc->lmc_device->stats)) || 254 sizeof(sc->lmc_device->stats)) ||
248 copy_to_user(ifr->ifr_data + sizeof(sc->lmc_device->stats), 255 copy_to_user(ifr->ifr_data + sizeof(sc->lmc_device->stats),
@@ -258,12 +265,14 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
258 break; 265 break;
259 } 266 }
260 267
268 spin_lock_irqsave(&sc->lmc_lock, flags);
261 memset(&sc->lmc_device->stats, 0, sizeof(sc->lmc_device->stats)); 269 memset(&sc->lmc_device->stats, 0, sizeof(sc->lmc_device->stats));
262 memset(&sc->extra_stats, 0, sizeof(sc->extra_stats)); 270 memset(&sc->extra_stats, 0, sizeof(sc->extra_stats));
263 sc->extra_stats.check = STATCHECK; 271 sc->extra_stats.check = STATCHECK;
264 sc->extra_stats.version_size = (DRIVER_VERSION << 16) + 272 sc->extra_stats.version_size = (DRIVER_VERSION << 16) +
265 sizeof(sc->lmc_device->stats) + sizeof(sc->extra_stats); 273 sizeof(sc->lmc_device->stats) + sizeof(sc->extra_stats);
266 sc->extra_stats.lmc_cardtype = sc->lmc_cardtype; 274 sc->extra_stats.lmc_cardtype = sc->lmc_cardtype;
275 spin_unlock_irqrestore(&sc->lmc_lock, flags);
267 ret = 0; 276 ret = 0;
268 break; 277 break;
269 278
@@ -282,8 +291,10 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
282 ret = -EFAULT; 291 ret = -EFAULT;
283 break; 292 break;
284 } 293 }
294 spin_lock_irqsave(&sc->lmc_lock, flags);
285 sc->lmc_media->set_circuit_type(sc, ctl.circuit_type); 295 sc->lmc_media->set_circuit_type(sc, ctl.circuit_type);
286 sc->ictl.circuit_type = ctl.circuit_type; 296 sc->ictl.circuit_type = ctl.circuit_type;
297 spin_unlock_irqrestore(&sc->lmc_lock, flags);
287 ret = 0; 298 ret = 0;
288 299
289 break; 300 break;
@@ -294,12 +305,14 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
294 break; 305 break;
295 } 306 }
296 307
308 spin_lock_irqsave(&sc->lmc_lock, flags);
297 /* Reset driver and bring back to current state */ 309 /* Reset driver and bring back to current state */
298 printk (" REG16 before reset +%04x\n", lmc_mii_readreg (sc, 0, 16)); 310 printk (" REG16 before reset +%04x\n", lmc_mii_readreg (sc, 0, 16));
299 lmc_running_reset (dev); 311 lmc_running_reset (dev);
300 printk (" REG16 after reset +%04x\n", lmc_mii_readreg (sc, 0, 16)); 312 printk (" REG16 after reset +%04x\n", lmc_mii_readreg (sc, 0, 16));
301 313
302 LMC_EVENT_LOG(LMC_EVENT_FORCEDRESET, LMC_CSR_READ (sc, csr_status), lmc_mii_readreg (sc, 0, 16)); 314 LMC_EVENT_LOG(LMC_EVENT_FORCEDRESET, LMC_CSR_READ (sc, csr_status), lmc_mii_readreg (sc, 0, 16));
315 spin_unlock_irqrestore(&sc->lmc_lock, flags);
303 316
304 ret = 0; 317 ret = 0;
305 break; 318 break;
@@ -338,14 +351,15 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
338 */ 351 */
339 netif_stop_queue(dev); 352 netif_stop_queue(dev);
340 353
341 if (copy_from_user(&xc, ifr->ifr_data, sizeof(struct lmc_xilinx_control))) { 354 if (copy_from_user(&xc, ifr->ifr_data, sizeof(struct lmc_xilinx_control))) {
342 ret = -EFAULT; 355 ret = -EFAULT;
343 break; 356 break;
344 } 357 }
345 switch(xc.command){ 358 switch(xc.command){
346 case lmc_xilinx_reset: /*fold02*/ 359 case lmc_xilinx_reset: /*fold02*/
347 { 360 {
348 u16 mii; 361 u16 mii;
362 spin_lock_irqsave(&sc->lmc_lock, flags);
349 mii = lmc_mii_readreg (sc, 0, 16); 363 mii = lmc_mii_readreg (sc, 0, 16);
350 364
351 /* 365 /*
@@ -404,6 +418,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
404 lmc_led_off(sc, LMC_DS3_LED2); 418 lmc_led_off(sc, LMC_DS3_LED2);
405 } 419 }
406 } 420 }
421 spin_unlock_irqrestore(&sc->lmc_lock, flags);
407 422
408 423
409 424
@@ -416,6 +431,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
416 { 431 {
417 u16 mii; 432 u16 mii;
418 int timeout = 500000; 433 int timeout = 500000;
434 spin_lock_irqsave(&sc->lmc_lock, flags);
419 mii = lmc_mii_readreg (sc, 0, 16); 435 mii = lmc_mii_readreg (sc, 0, 16);
420 436
421 /* 437 /*
@@ -451,13 +467,14 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
451 */ 467 */
452 while( (LMC_CSR_READ(sc, csr_gp) & LMC_GEP_INIT) == 0 && 468 while( (LMC_CSR_READ(sc, csr_gp) & LMC_GEP_INIT) == 0 &&
453 (timeout-- > 0)) 469 (timeout-- > 0))
454 ; 470 cpu_relax();
455 471
456 472
457 /* 473 /*
458 * stop driving Xilinx-related signals 474 * stop driving Xilinx-related signals
459 */ 475 */
460 lmc_gpio_mkinput(sc, 0xff); 476 lmc_gpio_mkinput(sc, 0xff);
477 spin_unlock_irqrestore(&sc->lmc_lock, flags);
461 478
462 ret = 0x0; 479 ret = 0x0;
463 480
@@ -493,6 +510,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
493 510
494 printk("%s: Starting load of data Len: %d at 0x%p == 0x%p\n", dev->name, xc.len, xc.data, data); 511 printk("%s: Starting load of data Len: %d at 0x%p == 0x%p\n", dev->name, xc.len, xc.data, data);
495 512
513 spin_lock_irqsave(&sc->lmc_lock, flags);
496 lmc_gpio_mkinput(sc, 0xff); 514 lmc_gpio_mkinput(sc, 0xff);
497 515
498 /* 516 /*
@@ -545,7 +563,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
545 */ 563 */
546 while( (LMC_CSR_READ(sc, csr_gp) & LMC_GEP_INIT) == 0 && 564 while( (LMC_CSR_READ(sc, csr_gp) & LMC_GEP_INIT) == 0 &&
547 (timeout-- > 0)) 565 (timeout-- > 0))
548 ; 566 cpu_relax();
549 567
550 printk(KERN_DEBUG "%s: Waited %d for the Xilinx to clear it's memory\n", dev->name, 500000-timeout); 568 printk(KERN_DEBUG "%s: Waited %d for the Xilinx to clear it's memory\n", dev->name, 500000-timeout);
551 569
@@ -588,6 +606,7 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
588 606
589 sc->lmc_miireg16 &= ~LMC_MII16_FIFO_RESET; 607 sc->lmc_miireg16 &= ~LMC_MII16_FIFO_RESET;
590 lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16); 608 lmc_mii_writereg(sc, 0, 16, sc->lmc_miireg16);
609 spin_unlock_irqrestore(&sc->lmc_lock, flags);
591 610
592 kfree(data); 611 kfree(data);
593 612
@@ -611,8 +630,6 @@ int lmc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /*fold00*/
611 break; 630 break;
612 } 631 }
613 632
614 spin_unlock_irqrestore(&sc->lmc_lock, flags); /*fold01*/
615
616 lmc_trace(dev, "lmc_ioctl out"); 633 lmc_trace(dev, "lmc_ioctl out");
617 634
618 return ret; 635 return ret;
diff --git a/drivers/net/wan/sbni.c b/drivers/net/wan/sbni.c
index f972fef87c98..ee51b6a5e605 100644
--- a/drivers/net/wan/sbni.c
+++ b/drivers/net/wan/sbni.c
@@ -318,7 +318,7 @@ sbni_pci_probe( struct net_device *dev )
318 continue; 318 continue;
319 } 319 }
320 320
321 if( pci_irq_line <= 0 || pci_irq_line >= NR_IRQS ) 321 if (pci_irq_line <= 0 || pci_irq_line >= nr_irqs)
322 printk( KERN_WARNING " WARNING: The PCI BIOS assigned " 322 printk( KERN_WARNING " WARNING: The PCI BIOS assigned "
323 "this PCI card to IRQ %d, which is unlikely " 323 "this PCI card to IRQ %d, which is unlikely "
324 "to work!.\n" 324 "to work!.\n"
diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c
index 74726990d59e..f05f584ab7bc 100644
--- a/drivers/net/wireless/ath9k/main.c
+++ b/drivers/net/wireless/ath9k/main.c
@@ -1640,6 +1640,11 @@ static int ath9k_ampdu_action(struct ieee80211_hw *hw,
1640 return ret; 1640 return ret;
1641} 1641}
1642 1642
1643static int ath9k_no_fragmentation(struct ieee80211_hw *hw, u32 value)
1644{
1645 return -EOPNOTSUPP;
1646}
1647
1643static struct ieee80211_ops ath9k_ops = { 1648static struct ieee80211_ops ath9k_ops = {
1644 .tx = ath9k_tx, 1649 .tx = ath9k_tx,
1645 .start = ath9k_start, 1650 .start = ath9k_start,
@@ -1664,7 +1669,8 @@ static struct ieee80211_ops ath9k_ops = {
1664 .get_tsf = ath9k_get_tsf, 1669 .get_tsf = ath9k_get_tsf,
1665 .reset_tsf = ath9k_reset_tsf, 1670 .reset_tsf = ath9k_reset_tsf,
1666 .tx_last_beacon = NULL, 1671 .tx_last_beacon = NULL,
1667 .ampdu_action = ath9k_ampdu_action 1672 .ampdu_action = ath9k_ampdu_action,
1673 .set_frag_threshold = ath9k_no_fragmentation,
1668}; 1674};
1669 1675
1670static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) 1676static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index f6003e7996af..5155b8a760a7 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -833,12 +833,12 @@ static int iwl5000_hw_set_hw_params(struct iwl_priv *priv)
833 switch (priv->hw_rev & CSR_HW_REV_TYPE_MSK) { 833 switch (priv->hw_rev & CSR_HW_REV_TYPE_MSK) {
834 case CSR_HW_REV_TYPE_5100: 834 case CSR_HW_REV_TYPE_5100:
835 case CSR_HW_REV_TYPE_5300: 835 case CSR_HW_REV_TYPE_5300:
836 /* 5X00 wants in Celsius */ 836 case CSR_HW_REV_TYPE_5350:
837 /* 5X00 and 5350 wants in Celsius */
837 priv->hw_params.ct_kill_threshold = CT_KILL_THRESHOLD; 838 priv->hw_params.ct_kill_threshold = CT_KILL_THRESHOLD;
838 break; 839 break;
839 case CSR_HW_REV_TYPE_5150: 840 case CSR_HW_REV_TYPE_5150:
840 case CSR_HW_REV_TYPE_5350: 841 /* 5150 wants in Kelvin */
841 /* 5X50 wants in Kelvin */
842 priv->hw_params.ct_kill_threshold = 842 priv->hw_params.ct_kill_threshold =
843 CELSIUS_TO_KELVIN(CT_KILL_THRESHOLD); 843 CELSIUS_TO_KELVIN(CT_KILL_THRESHOLD);
844 break; 844 break;
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
index 93944de923ca..e2a58e477036 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
@@ -2422,7 +2422,7 @@ static void rs_free_sta(void *priv_r, struct ieee80211_sta *sta,
2422 void *priv_sta) 2422 void *priv_sta)
2423{ 2423{
2424 struct iwl_lq_sta *lq_sta = priv_sta; 2424 struct iwl_lq_sta *lq_sta = priv_sta;
2425 struct iwl_priv *priv = priv_r; 2425 struct iwl_priv *priv __maybe_unused = priv_r;
2426 2426
2427 IWL_DEBUG_RATE("enter\n"); 2427 IWL_DEBUG_RATE("enter\n");
2428 kfree(lq_sta); 2428 kfree(lq_sta);
diff --git a/drivers/net/wireless/libertas/cmd.c b/drivers/net/wireless/libertas/cmd.c
index a912fb68c099..297696de2da0 100644
--- a/drivers/net/wireless/libertas/cmd.c
+++ b/drivers/net/wireless/libertas/cmd.c
@@ -823,7 +823,9 @@ int lbs_update_channel(struct lbs_private *priv)
823int lbs_set_channel(struct lbs_private *priv, u8 channel) 823int lbs_set_channel(struct lbs_private *priv, u8 channel)
824{ 824{
825 struct cmd_ds_802_11_rf_channel cmd; 825 struct cmd_ds_802_11_rf_channel cmd;
826#ifdef DEBUG
826 u8 old_channel = priv->curbssparams.channel; 827 u8 old_channel = priv->curbssparams.channel;
828#endif
827 int ret = 0; 829 int ret = 0;
828 830
829 lbs_deb_enter(LBS_DEB_CMD); 831 lbs_deb_enter(LBS_DEB_CMD);
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index c9e4a435b2fc..1a019e98dac3 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
@@ -533,11 +533,11 @@ static int __init init_mac80211_hwsim(void)
533 data = hw->priv; 533 data = hw->priv;
534 data->hw = hw; 534 data->hw = hw;
535 535
536 data->dev = device_create_drvdata(hwsim_class, NULL, 0, hw, 536 data->dev = device_create(hwsim_class, NULL, 0, hw,
537 "hwsim%d", i); 537 "hwsim%d", i);
538 if (IS_ERR(data->dev)) { 538 if (IS_ERR(data->dev)) {
539 printk(KERN_DEBUG 539 printk(KERN_DEBUG
540 "mac80211_hwsim: device_create_drvdata " 540 "mac80211_hwsim: device_create "
541 "failed (%ld)\n", PTR_ERR(data->dev)); 541 "failed (%ld)\n", PTR_ERR(data->dev));
542 err = -ENOMEM; 542 err = -ENOMEM;
543 goto failed_drvdata; 543 goto failed_drvdata;
diff --git a/drivers/net/wireless/orinoco_cs.c b/drivers/net/wireless/orinoco_cs.c
index e585684e59a0..6fcf2bda7cdf 100644
--- a/drivers/net/wireless/orinoco_cs.c
+++ b/drivers/net/wireless/orinoco_cs.c
@@ -378,6 +378,7 @@ static int orinoco_cs_resume(struct pcmcia_device *link)
378 struct orinoco_private *priv = netdev_priv(dev); 378 struct orinoco_private *priv = netdev_priv(dev);
379 struct orinoco_pccard *card = priv->card; 379 struct orinoco_pccard *card = priv->card;
380 int err = 0; 380 int err = 0;
381 unsigned long flags;
381 382
382 if (! test_bit(0, &card->hard_reset_in_progress)) { 383 if (! test_bit(0, &card->hard_reset_in_progress)) {
383 err = orinoco_reinit_firmware(dev); 384 err = orinoco_reinit_firmware(dev);
@@ -387,7 +388,7 @@ static int orinoco_cs_resume(struct pcmcia_device *link)
387 return -EIO; 388 return -EIO;
388 } 389 }
389 390
390 spin_lock(&priv->lock); 391 spin_lock_irqsave(&priv->lock, flags);
391 392
392 netif_device_attach(dev); 393 netif_device_attach(dev);
393 priv->hw_unavailable--; 394 priv->hw_unavailable--;
@@ -399,7 +400,7 @@ static int orinoco_cs_resume(struct pcmcia_device *link)
399 dev->name, err); 400 dev->name, err);
400 } 401 }
401 402
402 spin_unlock(&priv->lock); 403 spin_unlock_irqrestore(&priv->lock, flags);
403 } 404 }
404 405
405 return err; 406 return err;
diff --git a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c
index 1994aa199d37..117c7d3a52b0 100644
--- a/drivers/net/wireless/p54/p54common.c
+++ b/drivers/net/wireless/p54/p54common.c
@@ -479,7 +479,6 @@ static int p54_parse_eeprom(struct ieee80211_hw *dev, void *eeprom, int len)
479 printk(KERN_ERR "p54: eeprom parse failed!\n"); 479 printk(KERN_ERR "p54: eeprom parse failed!\n");
480 return err; 480 return err;
481} 481}
482EXPORT_SYMBOL_GPL(p54_parse_eeprom);
483 482
484static int p54_rssi_to_dbm(struct ieee80211_hw *dev, int rssi) 483static int p54_rssi_to_dbm(struct ieee80211_hw *dev, int rssi)
485{ 484{
diff --git a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c
index 1912f5e9a0a9..75d749bccb0d 100644
--- a/drivers/net/wireless/p54/p54usb.c
+++ b/drivers/net/wireless/p54/p54usb.c
@@ -39,6 +39,7 @@ static struct usb_device_id p54u_table[] __devinitdata = {
39 {USB_DEVICE(0x0846, 0x4200)}, /* Netgear WG121 */ 39 {USB_DEVICE(0x0846, 0x4200)}, /* Netgear WG121 */
40 {USB_DEVICE(0x0846, 0x4210)}, /* Netgear WG121 the second ? */ 40 {USB_DEVICE(0x0846, 0x4210)}, /* Netgear WG121 the second ? */
41 {USB_DEVICE(0x0846, 0x4220)}, /* Netgear WG111 */ 41 {USB_DEVICE(0x0846, 0x4220)}, /* Netgear WG111 */
42 {USB_DEVICE(0x09aa, 0x1000)}, /* Spinnaker Proto board */
42 {USB_DEVICE(0x0cde, 0x0006)}, /* Medion 40900, Roper Europe */ 43 {USB_DEVICE(0x0cde, 0x0006)}, /* Medion 40900, Roper Europe */
43 {USB_DEVICE(0x124a, 0x4023)}, /* Shuttle PN15, Airvast WM168g, IOGear GWU513 */ 44 {USB_DEVICE(0x124a, 0x4023)}, /* Shuttle PN15, Airvast WM168g, IOGear GWU513 */
44 {USB_DEVICE(0x1915, 0x2234)}, /* Linksys WUSB54G OEM */ 45 {USB_DEVICE(0x1915, 0x2234)}, /* Linksys WUSB54G OEM */
@@ -63,8 +64,8 @@ static struct usb_device_id p54u_table[] __devinitdata = {
63 {USB_DEVICE(0x0cde, 0x0006)}, /* Medion MD40900 */ 64 {USB_DEVICE(0x0cde, 0x0006)}, /* Medion MD40900 */
64 {USB_DEVICE(0x0cde, 0x0008)}, /* Sagem XG703A */ 65 {USB_DEVICE(0x0cde, 0x0008)}, /* Sagem XG703A */
65 {USB_DEVICE(0x0d8e, 0x3762)}, /* DLink DWL-G120 Cohiba */ 66 {USB_DEVICE(0x0d8e, 0x3762)}, /* DLink DWL-G120 Cohiba */
66 {USB_DEVICE(0x09aa, 0x1000)}, /* Spinnaker Proto board */
67 {USB_DEVICE(0x124a, 0x4025)}, /* IOGear GWU513 (GW3887IK chip) */ 67 {USB_DEVICE(0x124a, 0x4025)}, /* IOGear GWU513 (GW3887IK chip) */
68 {USB_DEVICE(0x1260, 0xee22)}, /* SMC 2862W-G version 2 */
68 {USB_DEVICE(0x13b1, 0x000a)}, /* Linksys WUSB54G ver 2 */ 69 {USB_DEVICE(0x13b1, 0x000a)}, /* Linksys WUSB54G ver 2 */
69 {USB_DEVICE(0x13B1, 0x000C)}, /* Linksys WUSB54AG */ 70 {USB_DEVICE(0x13B1, 0x000C)}, /* Linksys WUSB54AG */
70 {USB_DEVICE(0x1435, 0x0427)}, /* Inventel UR054G */ 71 {USB_DEVICE(0x1435, 0x0427)}, /* Inventel UR054G */
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
index 1676ac484790..451d410ecdae 100644
--- a/drivers/net/wireless/rt2x00/rt2x00queue.c
+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
@@ -374,7 +374,7 @@ int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb)
374 struct queue_entry *entry = rt2x00queue_get_entry(queue, Q_INDEX); 374 struct queue_entry *entry = rt2x00queue_get_entry(queue, Q_INDEX);
375 struct txentry_desc txdesc; 375 struct txentry_desc txdesc;
376 struct skb_frame_desc *skbdesc; 376 struct skb_frame_desc *skbdesc;
377 unsigned int iv_len; 377 unsigned int iv_len = 0;
378 378
379 if (unlikely(rt2x00queue_full(queue))) 379 if (unlikely(rt2x00queue_full(queue)))
380 return -EINVAL; 380 return -EINVAL;
@@ -395,6 +395,9 @@ int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb)
395 entry->skb = skb; 395 entry->skb = skb;
396 rt2x00queue_create_tx_descriptor(entry, &txdesc); 396 rt2x00queue_create_tx_descriptor(entry, &txdesc);
397 397
398 if (IEEE80211_SKB_CB(skb)->control.hw_key != NULL)
399 iv_len = IEEE80211_SKB_CB(skb)->control.hw_key->iv_len;
400
398 /* 401 /*
399 * All information is retreived from the skb->cb array, 402 * All information is retreived from the skb->cb array,
400 * now we should claim ownership of the driver part of that 403 * now we should claim ownership of the driver part of that
@@ -410,9 +413,7 @@ int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb)
410 * the frame so we can provide it to the driver seperately. 413 * the frame so we can provide it to the driver seperately.
411 */ 414 */
412 if (test_bit(ENTRY_TXD_ENCRYPT, &txdesc.flags) && 415 if (test_bit(ENTRY_TXD_ENCRYPT, &txdesc.flags) &&
413 !test_bit(ENTRY_TXD_ENCRYPT_IV, &txdesc.flags) && 416 !test_bit(ENTRY_TXD_ENCRYPT_IV, &txdesc.flags)) {
414 (IEEE80211_SKB_CB(skb)->control.hw_key != NULL)) {
415 iv_len = IEEE80211_SKB_CB(skb)->control.hw_key->iv_len;
416 rt2x00crypto_tx_remove_iv(skb, iv_len); 417 rt2x00crypto_tx_remove_iv(skb, iv_len);
417 } 418 }
418 419
diff --git a/drivers/net/wireless/rtl8187_dev.c b/drivers/net/wireless/rtl8187_dev.c
index e9902613e2ee..431e3c78bf27 100644
--- a/drivers/net/wireless/rtl8187_dev.c
+++ b/drivers/net/wireless/rtl8187_dev.c
@@ -33,10 +33,13 @@ MODULE_LICENSE("GPL");
33static struct usb_device_id rtl8187_table[] __devinitdata = { 33static struct usb_device_id rtl8187_table[] __devinitdata = {
34 /* Asus */ 34 /* Asus */
35 {USB_DEVICE(0x0b05, 0x171d), .driver_info = DEVICE_RTL8187}, 35 {USB_DEVICE(0x0b05, 0x171d), .driver_info = DEVICE_RTL8187},
36 /* Belkin */
37 {USB_DEVICE(0x050d, 0x705e), .driver_info = DEVICE_RTL8187B},
36 /* Realtek */ 38 /* Realtek */
37 {USB_DEVICE(0x0bda, 0x8187), .driver_info = DEVICE_RTL8187}, 39 {USB_DEVICE(0x0bda, 0x8187), .driver_info = DEVICE_RTL8187},
38 {USB_DEVICE(0x0bda, 0x8189), .driver_info = DEVICE_RTL8187B}, 40 {USB_DEVICE(0x0bda, 0x8189), .driver_info = DEVICE_RTL8187B},
39 {USB_DEVICE(0x0bda, 0x8197), .driver_info = DEVICE_RTL8187B}, 41 {USB_DEVICE(0x0bda, 0x8197), .driver_info = DEVICE_RTL8187B},
42 {USB_DEVICE(0x0bda, 0x8198), .driver_info = DEVICE_RTL8187B},
40 /* Netgear */ 43 /* Netgear */
41 {USB_DEVICE(0x0846, 0x6100), .driver_info = DEVICE_RTL8187}, 44 {USB_DEVICE(0x0846, 0x6100), .driver_info = DEVICE_RTL8187},
42 {USB_DEVICE(0x0846, 0x6a00), .driver_info = DEVICE_RTL8187}, 45 {USB_DEVICE(0x0846, 0x6a00), .driver_info = DEVICE_RTL8187},
diff --git a/drivers/net/wireless/spectrum_cs.c b/drivers/net/wireless/spectrum_cs.c
index b0c71c3be467..852789ad34b3 100644
--- a/drivers/net/wireless/spectrum_cs.c
+++ b/drivers/net/wireless/spectrum_cs.c
@@ -426,10 +426,11 @@ spectrum_cs_suspend(struct pcmcia_device *link)
426{ 426{
427 struct net_device *dev = link->priv; 427 struct net_device *dev = link->priv;
428 struct orinoco_private *priv = netdev_priv(dev); 428 struct orinoco_private *priv = netdev_priv(dev);
429 unsigned long flags;
429 int err = 0; 430 int err = 0;
430 431
431 /* Mark the device as stopped, to block IO until later */ 432 /* Mark the device as stopped, to block IO until later */
432 spin_lock(&priv->lock); 433 spin_lock_irqsave(&priv->lock, flags);
433 434
434 err = __orinoco_down(dev); 435 err = __orinoco_down(dev);
435 if (err) 436 if (err)
@@ -439,7 +440,7 @@ spectrum_cs_suspend(struct pcmcia_device *link)
439 netif_device_detach(dev); 440 netif_device_detach(dev);
440 priv->hw_unavailable++; 441 priv->hw_unavailable++;
441 442
442 spin_unlock(&priv->lock); 443 spin_unlock_irqrestore(&priv->lock, flags);
443 444
444 return err; 445 return err;
445} 446}
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index 3c3dd403f5dd..c6948d8f53f6 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -239,11 +239,14 @@ static void xennet_alloc_rx_buffers(struct net_device *dev)
239 */ 239 */
240 batch_target = np->rx_target - (req_prod - np->rx.rsp_cons); 240 batch_target = np->rx_target - (req_prod - np->rx.rsp_cons);
241 for (i = skb_queue_len(&np->rx_batch); i < batch_target; i++) { 241 for (i = skb_queue_len(&np->rx_batch); i < batch_target; i++) {
242 skb = __netdev_alloc_skb(dev, RX_COPY_THRESHOLD, 242 skb = __netdev_alloc_skb(dev, RX_COPY_THRESHOLD + NET_IP_ALIGN,
243 GFP_ATOMIC | __GFP_NOWARN); 243 GFP_ATOMIC | __GFP_NOWARN);
244 if (unlikely(!skb)) 244 if (unlikely(!skb))
245 goto no_skb; 245 goto no_skb;
246 246
247 /* Align ip header to a 16 bytes boundary */
248 skb_reserve(skb, NET_IP_ALIGN);
249
247 page = alloc_page(GFP_ATOMIC | __GFP_NOWARN); 250 page = alloc_page(GFP_ATOMIC | __GFP_NOWARN);
248 if (!page) { 251 if (!page) {
249 kfree_skb(skb); 252 kfree_skb(skb);
@@ -471,7 +474,7 @@ static int xennet_start_xmit(struct sk_buff *skb, struct net_device *dev)
471 unsigned int offset = offset_in_page(data); 474 unsigned int offset = offset_in_page(data);
472 unsigned int len = skb_headlen(skb); 475 unsigned int len = skb_headlen(skb);
473 476
474 frags += (offset + len + PAGE_SIZE - 1) / PAGE_SIZE; 477 frags += DIV_ROUND_UP(offset + len, PAGE_SIZE);
475 if (unlikely(frags > MAX_SKB_FRAGS + 1)) { 478 if (unlikely(frags > MAX_SKB_FRAGS + 1)) {
476 printk(KERN_ALERT "xennet: skb rides the rocket: %d frags\n", 479 printk(KERN_ALERT "xennet: skb rides the rocket: %d frags\n",
477 frags); 480 frags);