Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 518d8338 authored by Auke Kok's avatar Auke Kok Committed by Jeff Garzik
Browse files

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: default avatarFrederik Deweerdt <frederik.deweerdt@gmail.com>
Signed-off-by: default avatarAuke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent f8a8ccd5
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -2725,6 +2725,7 @@ static int e100_suspend(struct pci_dev *pdev, pm_message_t state)
	del_timer_sync(&nic->watchdog);
	del_timer_sync(&nic->watchdog);
	netif_carrier_off(nic->netdev);
	netif_carrier_off(nic->netdev);


	netif_device_detach(netdev);
	pci_save_state(pdev);
	pci_save_state(pdev);


	if ((nic->flags & wol_magic) | e100_asf(nic)) {
	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);
	pci_disable_device(pdev);
	free_irq(pdev->irq, netdev);
	pci_set_power_state(pdev, PCI_D3hot);
	pci_set_power_state(pdev, PCI_D3hot);


	return 0;
	return 0;