summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Monakhov <dmonakhov@openvz.org>2007-01-27 00:00:03 -0800
committerJeff Garzik <jeff@garzik.org>2007-01-30 09:36:02 -0500
commit90afd0e574a1a739aeb62e30d556ebf0289389e5 (patch)
treefd882a0475ce51a35200a114a2688eed9403170f
parent00576e93805bd4f2dd2649e354726dee872d1e8a (diff)
downloadlwn-90afd0e574a1a739aeb62e30d556ebf0289389e5.tar.gz
lwn-90afd0e574a1a739aeb62e30d556ebf0289389e5.zip
Broadcom 4400 resume small fix
Some issues in b44_resume(). - Return value of pci_enable_device() was ignored. - If request_irq() has failed we have to just disable device and exit. Signed-off-by: Dmitriy Monakhov <dmonakhov@openvz.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r--drivers/net/b44.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index 26b9295cb9b7..303a8d94ad4b 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -2320,16 +2320,27 @@ static int b44_resume(struct pci_dev *pdev)
{
struct net_device *dev = pci_get_drvdata(pdev);
struct b44 *bp = netdev_priv(dev);
+ int rc = 0;
pci_restore_state(pdev);
- pci_enable_device(pdev);
+ rc = pci_enable_device(pdev);
+ if (rc) {
+ printk(KERN_ERR PFX "%s: pci_enable_device failed\n",
+ dev->name);
+ return rc;
+ }
+
pci_set_master(pdev);
if (!netif_running(dev))
return 0;
- if (request_irq(dev->irq, b44_interrupt, IRQF_SHARED, dev->name, dev))
+ rc = request_irq(dev->irq, b44_interrupt, IRQF_SHARED, dev->name, dev);
+ if (rc) {
printk(KERN_ERR PFX "%s: request_irq failed\n", dev->name);
+ pci_disable_device(pdev);
+ return rc;
+ }
spin_lock_irq(&bp->lock);