
From: Pavel Machek <pavel@ucw.cz>

If I want via-rhine to work after resume, I need this patch.  It stops
interrupts during suspend and reinitializes them after that.

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/net/via-rhine.c |    4 ++++
 1 files changed, 4 insertions(+)

diff -puN drivers/net/via-rhine.c~fix-suspend-resume-support-in-via-rhine2 drivers/net/via-rhine.c
--- 25/drivers/net/via-rhine.c~fix-suspend-resume-support-in-via-rhine2	2004-10-21 21:06:47.098607656 -0700
+++ 25-akpm/drivers/net/via-rhine.c	2004-10-21 21:06:47.103606896 -0700
@@ -1958,6 +1958,7 @@ static int rhine_suspend(struct pci_dev 
 	rhine_shutdown(&pdev->dev);
 	spin_unlock_irqrestore(&rp->lock, flags);
 
+	free_irq(dev->irq, dev);
 	return 0;
 }
 
@@ -1971,6 +1972,9 @@ static int rhine_resume(struct pci_dev *
 	if (!netif_running(dev))
 		return 0;
 
+        if (request_irq(dev->irq, rhine_interrupt, SA_SHIRQ, dev->name, dev))
+		printk(KERN_ERR "via-rhine %s: request_irq failed\n", dev->name);
+
 	ret = pci_set_power_state(pdev, 0);
 	if (debug > 1)
 		printk(KERN_INFO "%s: Entering power state D0 %s (%d).\n",
_
