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

Commit 56997fa8 authored by Grant Grundler's avatar Grant Grundler Committed by Jeff Garzik
Browse files

[netdrvr] tulip: oops in tulip_interrupt when hibernating with swsusp/suspend2

The following patch is seems to fix the tulip suspend/resume panic:
	http://bugzilla.kernel.org/show_bug.cgi?id=8952#c46



My attempts at a cleaner patch failed and Pavel thinks this is OK.

Original from:  kernelbugs@tap.homeip.net
Signed-off-by: default avatarGrant Grundler <grundler@parisc-linux.org>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent aefdbf1a
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -1729,12 +1729,15 @@ static int tulip_suspend (struct pci_dev *pdev, pm_message_t state)
	if (!dev)
		return -EINVAL;

	if (netif_running(dev))
	if (!netif_running(dev))
		goto save_state;

	tulip_down(dev);

	netif_device_detach(dev);
	free_irq(dev->irq, dev);

save_state:
	pci_save_state(pdev);
	pci_disable_device(pdev);
	pci_set_power_state(pdev, pci_choose_state(pdev, state));
@@ -1754,6 +1757,9 @@ static int tulip_resume(struct pci_dev *pdev)
	pci_set_power_state(pdev, PCI_D0);
	pci_restore_state(pdev);

	if (!netif_running(dev))
		return 0;

	if ((retval = pci_enable_device(pdev))) {
		printk (KERN_ERR "tulip: pci_enable_device failed in resume\n");
		return retval;