aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/dm9000.c2
-rw-r--r--drivers/net/fec_mpc52xx_phy.c3
-rw-r--r--drivers/net/plip.c7
-rw-r--r--drivers/net/sky2.c6
-rw-r--r--drivers/net/usb/rtl8150.c2
5 files changed, 14 insertions, 6 deletions
diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
index b09a53de1c53..d63cc93f055d 100644
--- a/drivers/net/dm9000.c
+++ b/drivers/net/dm9000.c
@@ -968,7 +968,7 @@ dm9000_interrupt(int irq, void *dev_id)
968struct dm9000_rxhdr { 968struct dm9000_rxhdr {
969 u8 RxPktReady; 969 u8 RxPktReady;
970 u8 RxStatus; 970 u8 RxStatus;
971 u16 RxLen; 971 __le16 RxLen;
972} __attribute__((__packed__)); 972} __attribute__((__packed__));
973 973
974/* 974/*
diff --git a/drivers/net/fec_mpc52xx_phy.c b/drivers/net/fec_mpc52xx_phy.c
index 1837584c4504..6a3ac4ea97e9 100644
--- a/drivers/net/fec_mpc52xx_phy.c
+++ b/drivers/net/fec_mpc52xx_phy.c
@@ -109,7 +109,8 @@ static int mpc52xx_fec_mdio_probe(struct of_device *of, const struct of_device_i
109 int irq = irq_of_parse_and_map(child, 0); 109 int irq = irq_of_parse_and_map(child, 0);
110 if (irq != NO_IRQ) { 110 if (irq != NO_IRQ) {
111 const u32 *id = of_get_property(child, "reg", NULL); 111 const u32 *id = of_get_property(child, "reg", NULL);
112 bus->irq[*id] = irq; 112 if (id)
113 bus->irq[*id] = irq;
113 } 114 }
114 } 115 }
115 116
diff --git a/drivers/net/plip.c b/drivers/net/plip.c
index fee3d7b1feba..1e965427b0e9 100644
--- a/drivers/net/plip.c
+++ b/drivers/net/plip.c
@@ -903,17 +903,18 @@ plip_interrupt(void *dev_id)
903 struct net_local *nl; 903 struct net_local *nl;
904 struct plip_local *rcv; 904 struct plip_local *rcv;
905 unsigned char c0; 905 unsigned char c0;
906 unsigned long flags;
906 907
907 nl = netdev_priv(dev); 908 nl = netdev_priv(dev);
908 rcv = &nl->rcv_data; 909 rcv = &nl->rcv_data;
909 910
910 spin_lock_irq (&nl->lock); 911 spin_lock_irqsave (&nl->lock, flags);
911 912
912 c0 = read_status(dev); 913 c0 = read_status(dev);
913 if ((c0 & 0xf8) != 0xc0) { 914 if ((c0 & 0xf8) != 0xc0) {
914 if ((dev->irq != -1) && (net_debug > 1)) 915 if ((dev->irq != -1) && (net_debug > 1))
915 printk(KERN_DEBUG "%s: spurious interrupt\n", dev->name); 916 printk(KERN_DEBUG "%s: spurious interrupt\n", dev->name);
916 spin_unlock_irq (&nl->lock); 917 spin_unlock_irqrestore (&nl->lock, flags);
917 return; 918 return;
918 } 919 }
919 920
@@ -942,7 +943,7 @@ plip_interrupt(void *dev_id)
942 break; 943 break;
943 } 944 }
944 945
945 spin_unlock_irq(&nl->lock); 946 spin_unlock_irqrestore(&nl->lock, flags);
946} 947}
947 948
948static int 949static int
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index 54c662690f65..853bce0ac478 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -4329,10 +4329,14 @@ static int sky2_suspend(struct pci_dev *pdev, pm_message_t state)
4329 if (!hw) 4329 if (!hw)
4330 return 0; 4330 return 0;
4331 4331
4332 del_timer_sync(&hw->watchdog_timer);
4333 cancel_work_sync(&hw->restart_work);
4334
4332 for (i = 0; i < hw->ports; i++) { 4335 for (i = 0; i < hw->ports; i++) {
4333 struct net_device *dev = hw->dev[i]; 4336 struct net_device *dev = hw->dev[i];
4334 struct sky2_port *sky2 = netdev_priv(dev); 4337 struct sky2_port *sky2 = netdev_priv(dev);
4335 4338
4339 netif_device_detach(dev);
4336 if (netif_running(dev)) 4340 if (netif_running(dev))
4337 sky2_down(dev); 4341 sky2_down(dev);
4338 4342
@@ -4383,6 +4387,8 @@ static int sky2_resume(struct pci_dev *pdev)
4383 4387
4384 for (i = 0; i < hw->ports; i++) { 4388 for (i = 0; i < hw->ports; i++) {
4385 struct net_device *dev = hw->dev[i]; 4389 struct net_device *dev = hw->dev[i];
4390
4391 netif_device_attach(dev);
4386 if (netif_running(dev)) { 4392 if (netif_running(dev)) {
4387 err = sky2_up(dev); 4393 err = sky2_up(dev);
4388 if (err) { 4394 if (err) {
diff --git a/drivers/net/usb/rtl8150.c b/drivers/net/usb/rtl8150.c
index 7e1f00131f91..df56a518691c 100644
--- a/drivers/net/usb/rtl8150.c
+++ b/drivers/net/usb/rtl8150.c
@@ -376,7 +376,7 @@ static int alloc_all_urbs(rtl8150_t * dev)
376 return 0; 376 return 0;
377 } 377 }
378 dev->ctrl_urb = usb_alloc_urb(0, GFP_KERNEL); 378 dev->ctrl_urb = usb_alloc_urb(0, GFP_KERNEL);
379 if (!dev->intr_urb) { 379 if (!dev->ctrl_urb) {
380 usb_free_urb(dev->rx_urb); 380 usb_free_urb(dev->rx_urb);
381 usb_free_urb(dev->tx_urb); 381 usb_free_urb(dev->tx_urb);
382 usb_free_urb(dev->intr_urb); 382 usb_free_urb(dev->intr_urb);