diff options
author | Auke Kok <auke-jan.h.kok@intel.com> | 2007-01-29 17:31:16 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-01-30 09:36:02 -0500 |
commit | 518d83382568964ca9657511140398ebac925ecd (patch) | |
tree | 8d12028501a365ed134d279feecfb9c6f333cf56 /drivers | |
parent | f8a8ccd56d82bd4f4b5c7c2e7eb758c7764d98e1 (diff) |
e100: fix irq leak on suspend/resume
e100: fix irq leak on suspend/resume
From: Frederik Deweerdt <frederik.deweerdt@gmail.com>
The e100_resume() function should be calling netif_device_detach and
free_irq. This fixes multiple irq's being allocated after resume.
Signed-off-by: Frederik Deweerdt <frederik.deweerdt@gmail.com>
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/e100.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/e100.c b/drivers/net/e100.c index c2ae2a24629b..3208dac29168 100644 --- a/drivers/net/e100.c +++ b/drivers/net/e100.c | |||
@@ -2725,6 +2725,7 @@ static int e100_suspend(struct pci_dev *pdev, pm_message_t state) | |||
2725 | del_timer_sync(&nic->watchdog); | 2725 | del_timer_sync(&nic->watchdog); |
2726 | netif_carrier_off(nic->netdev); | 2726 | netif_carrier_off(nic->netdev); |
2727 | 2727 | ||
2728 | netif_device_detach(netdev); | ||
2728 | pci_save_state(pdev); | 2729 | pci_save_state(pdev); |
2729 | 2730 | ||
2730 | if ((nic->flags & wol_magic) | e100_asf(nic)) { | 2731 | if ((nic->flags & wol_magic) | e100_asf(nic)) { |
@@ -2736,6 +2737,7 @@ static int e100_suspend(struct pci_dev *pdev, pm_message_t state) | |||
2736 | } | 2737 | } |
2737 | 2738 | ||
2738 | pci_disable_device(pdev); | 2739 | pci_disable_device(pdev); |
2740 | free_irq(pdev->irq, netdev); | ||
2739 | pci_set_power_state(pdev, PCI_D3hot); | 2741 | pci_set_power_state(pdev, PCI_D3hot); |
2740 | 2742 | ||
2741 | return 0; | 2743 | return 0; |