e100: fix irq leak on suspend/resume
authorAuke Kok <auke-jan.h.kok@intel.com>
Mon, 29 Jan 2007 22:31:16 +0000 (14:31 -0800)
committerJeff Garzik <jeff@garzik.org>
Tue, 30 Jan 2007 14:36:02 +0000 (09:36 -0500)
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>
drivers/net/e100.c

index c2ae2a24629b35bffd9d348866229a7a24b4e219..3208dac291684c038ac70642057ccbbaa22efdbc 100644 (file)
@@ -2725,6 +2725,7 @@ static int e100_suspend(struct pci_dev *pdev, pm_message_t state)
        del_timer_sync(&nic->watchdog);
        netif_carrier_off(nic->netdev);
 
+       netif_device_detach(netdev);
        pci_save_state(pdev);
 
        if ((nic->flags & wol_magic) | e100_asf(nic)) {
@@ -2736,6 +2737,7 @@ static int e100_suspend(struct pci_dev *pdev, pm_message_t state)
        }
 
        pci_disable_device(pdev);
+       free_irq(pdev->irq, netdev);
        pci_set_power_state(pdev, PCI_D3hot);
 
        return 0;