summaryrefslogtreecommitdiffstats
path: root/drivers/net/myri10ge/myri10ge.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-07-12 16:32:16 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-07-12 16:32:16 -0700
commitdd4a59a8e5dd44299b2df4411e8d7b05902ef2e7 (patch)
treea87bfbde61f392bfff25b2d0fb9842460a0b7ad7 /drivers/net/myri10ge/myri10ge.c
parent155dbfd8846bf165bb036c4492ad121c8b059f1d (diff)
parent22e1170310ec6afa41e0dc7ac9dfac735d82dcab (diff)
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: [PATCH] sky2: optimize receive restart [PATCH] sky2: PHY power on delays [PATCH] sky2: NAPI suspend/resume of dual port cards [PATCH] sky2: sky2_reset section mismatch [PATCH] sk98lin: fix truncated collision threshold mask [PATCH] skge: fix truncated collision threshold mask [PATCH] sky2: fix truncated collision threshold mask [PATCH] myri10ge return value fix [PATCH] Update smc91x driver with ARM Versatile board info [PATCH] ixgb: fix tx unit hang - properly calculate desciptor count [PATCH] smsc-ircc2: fix section reference mismatches [PATCH] 8139cp.c printk fix [PATCH] s2io driver irq fix [PATCH] e1000: irq naming update [PATCH] forcedeth: watermark fixup [PATCH] forcedeth: deferral fixup [PATCH] zd1211rw: usb_clear_halt not allowed in IRQ context [PATCH] bcm43xx-softmac: Fix an off-by-one condition in handle_irq_noise
Diffstat (limited to 'drivers/net/myri10ge/myri10ge.c')
-rw-r--r--drivers/net/myri10ge/myri10ge.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index ee1de971a71..07ca9480a6f 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -2412,14 +2412,20 @@ static int myri10ge_resume(struct pci_dev *pdev)
return -EIO;
}
myri10ge_restore_state(mgp);
- pci_enable_device(pdev);
+
+ status = pci_enable_device(pdev);
+ if (status < 0) {
+ dev_err(&pdev->dev, "failed to enable device\n");
+ return -EIO;
+ }
+
pci_set_master(pdev);
status = request_irq(pdev->irq, myri10ge_intr, IRQF_SHARED,
netdev->name, mgp);
if (status != 0) {
dev_err(&pdev->dev, "failed to allocate IRQ\n");
- goto abort_with_msi;
+ goto abort_with_enabled;
}
myri10ge_reset(mgp);
@@ -2438,7 +2444,8 @@ static int myri10ge_resume(struct pci_dev *pdev)
return 0;
-abort_with_msi:
+abort_with_enabled:
+ pci_disable_device(pdev);
return -EIO;
}