diff options
author | Pavel Machek <pavel@ucw.cz> | 2005-10-28 18:14:47 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-10-28 19:06:43 -0400 |
commit | 46e178535836dcd7ef92f179218628d101892c59 (patch) | |
tree | db323b41078da50d3cd56a6f99da919bc619e4eb /drivers/net/b44.c | |
parent | a1bfcd97414d3e9b3c96f27d9b1a1e76c9543ba6 (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.c | 5 |
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); |