From: Pavel Machek Fix suspend/resume on b44 by freeing/reacquiring irq. Otherwise it hangs on resume. Signed-off-by: Pavel Machek Cc: Jeff Garzik Signed-off-by: Andrew Morton --- drivers/net/b44.c | 5 +++++ 1 files changed, 5 insertions(+) diff -puN drivers/net/b44.c~b44-fix-suspend-resume drivers/net/b44.c --- 25/drivers/net/b44.c~b44-fix-suspend-resume Tue Sep 20 16:26:47 2005 +++ 25-akpm/drivers/net/b44.c Tue Sep 20 16:26:47 2005 @@ -1932,6 +1932,8 @@ static int b44_suspend(struct pci_dev *p b44_free_rings(bp); spin_unlock_irq(&bp->lock); + + free_irq(dev->irq, dev); pci_disable_device(pdev); return 0; } @@ -1948,6 +1950,9 @@ static int b44_resume(struct pci_dev *pd if (!netif_running(dev)) return 0; + if (request_irq(dev->irq, b44_interrupt, SA_SHIRQ, dev->name, dev)) + printk(KERN_ERR PFX "%s: request_irq failed\n", dev->name); + spin_lock_irq(&bp->lock); b44_init_rings(bp); _