Skip to content

Commit

Permalink
[netdrvr] tulip: oops in tulip_interrupt when hibernating with swsusp…
Browse files Browse the repository at this point in the history
…/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: Grant Grundler <grundler@parisc-linux.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
  • Loading branch information
Grant Grundler authored and Jeff Garzik committed May 31, 2008
1 parent aefdbf1 commit 56997fa
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions drivers/net/tulip/tulip_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1729,12 +1729,15 @@ static int tulip_suspend (struct pci_dev *pdev, pm_message_t state)
if (!dev)
return -EINVAL;

if (netif_running(dev))
tulip_down(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));
Expand All @@ -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;
Expand Down

0 comments on commit 56997fa

Please sign in to comment.