diff options
-rw-r--r-- | drivers/net/myri10ge/myri10ge.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c index ee1de971a712..07ca9480a6fe 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) | |||
2412 | return -EIO; | 2412 | return -EIO; |
2413 | } | 2413 | } |
2414 | myri10ge_restore_state(mgp); | 2414 | myri10ge_restore_state(mgp); |
2415 | pci_enable_device(pdev); | 2415 | |
2416 | status = pci_enable_device(pdev); | ||
2417 | if (status < 0) { | ||
2418 | dev_err(&pdev->dev, "failed to enable device\n"); | ||
2419 | return -EIO; | ||
2420 | } | ||
2421 | |||
2416 | pci_set_master(pdev); | 2422 | pci_set_master(pdev); |
2417 | 2423 | ||
2418 | status = request_irq(pdev->irq, myri10ge_intr, IRQF_SHARED, | 2424 | status = request_irq(pdev->irq, myri10ge_intr, IRQF_SHARED, |
2419 | netdev->name, mgp); | 2425 | netdev->name, mgp); |
2420 | if (status != 0) { | 2426 | if (status != 0) { |
2421 | dev_err(&pdev->dev, "failed to allocate IRQ\n"); | 2427 | dev_err(&pdev->dev, "failed to allocate IRQ\n"); |
2422 | goto abort_with_msi; | 2428 | goto abort_with_enabled; |
2423 | } | 2429 | } |
2424 | 2430 | ||
2425 | myri10ge_reset(mgp); | 2431 | myri10ge_reset(mgp); |
@@ -2438,7 +2444,8 @@ static int myri10ge_resume(struct pci_dev *pdev) | |||
2438 | 2444 | ||
2439 | return 0; | 2445 | return 0; |
2440 | 2446 | ||
2441 | abort_with_msi: | 2447 | abort_with_enabled: |
2448 | pci_disable_device(pdev); | ||
2442 | return -EIO; | 2449 | return -EIO; |
2443 | 2450 | ||
2444 | } | 2451 | } |