aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/b44.c
diff options
context:
space:
mode:
authorPavel Machek <pavel@ucw.cz>2005-10-28 18:14:47 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-10-28 19:06:43 -0400
commit46e178535836dcd7ef92f179218628d101892c59 (patch)
treedb323b41078da50d3cd56a6f99da919bc619e4eb /drivers/net/b44.c
parenta1bfcd97414d3e9b3c96f27d9b1a1e76c9543ba6 (diff)
[PATCH] b44: fix suspend/resume
Fix suspend/resume on b44 by freeing/reacquiring irq. Otherwise it hangs on resume. Signed-off-by: Pavel Machek <pavel@suse.cz> Cc: Jeff Garzik <jgarzik@pobox.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/net/b44.c')
-rw-r--r--drivers/net/b44.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index 5485e3b1cd3..0ee3e27969c 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -2041,6 +2041,8 @@ static int b44_suspend(struct pci_dev *pdev, pm_message_t state)
2041 b44_free_rings(bp); 2041 b44_free_rings(bp);
2042 2042
2043 spin_unlock_irq(&bp->lock); 2043 spin_unlock_irq(&bp->lock);
2044
2045 free_irq(dev->irq, dev);
2044 pci_disable_device(pdev); 2046 pci_disable_device(pdev);
2045 return 0; 2047 return 0;
2046} 2048}
@@ -2057,6 +2059,9 @@ static int b44_resume(struct pci_dev *pdev)
2057 if (!netif_running(dev)) 2059 if (!netif_running(dev))
2058 return 0; 2060 return 0;
2059 2061
2062 if (request_irq(dev->irq, b44_interrupt, SA_SHIRQ, dev->name, dev))
2063 printk(KERN_ERR PFX "%s: request_irq failed\n", dev->name);
2064
2060 spin_lock_irq(&bp->lock); 2065 spin_lock_irq(&bp->lock);
2061 2066
2062 b44_init_rings(bp); 2067 b44_init_rings(bp);