Эх сурвалжийг харах

[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>
Pavel Machek 19 жил өмнө
parent
commit
46e1785358

+ 5 - 0
drivers/net/b44.c

@@ -2041,6 +2041,8 @@ static int b44_suspend(struct pci_dev *pdev, pm_message_t state)
 	b44_free_rings(bp);
 	b44_free_rings(bp);
 
 
 	spin_unlock_irq(&bp->lock);
 	spin_unlock_irq(&bp->lock);
+
+	free_irq(dev->irq, dev);
 	pci_disable_device(pdev);
 	pci_disable_device(pdev);
 	return 0;
 	return 0;
 }
 }
@@ -2057,6 +2059,9 @@ static int b44_resume(struct pci_dev *pdev)
 	if (!netif_running(dev))
 	if (!netif_running(dev))
 		return 0;
 		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);
 	spin_lock_irq(&bp->lock);
 
 
 	b44_init_rings(bp);
 	b44_init_rings(bp);