diff options
-rw-r--r-- | drivers/net/ethernet/qlogic/qlge/qlge_main.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/net/ethernet/qlogic/qlge/qlge_main.c b/drivers/net/ethernet/qlogic/qlge/qlge_main.c index 82bace5e536b..adf87d26e68f 100644 --- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c +++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c | |||
@@ -3331,23 +3331,16 @@ static void ql_enable_msix(struct ql_adapter *qdev) | |||
3331 | for (i = 0; i < qdev->intr_count; i++) | 3331 | for (i = 0; i < qdev->intr_count; i++) |
3332 | qdev->msi_x_entry[i].entry = i; | 3332 | qdev->msi_x_entry[i].entry = i; |
3333 | 3333 | ||
3334 | /* Loop to get our vectors. We start with | 3334 | err = pci_enable_msix_range(qdev->pdev, qdev->msi_x_entry, |
3335 | * what we want and settle for what we get. | 3335 | 1, qdev->intr_count); |
3336 | */ | ||
3337 | do { | ||
3338 | err = pci_enable_msix(qdev->pdev, | ||
3339 | qdev->msi_x_entry, qdev->intr_count); | ||
3340 | if (err > 0) | ||
3341 | qdev->intr_count = err; | ||
3342 | } while (err > 0); | ||
3343 | |||
3344 | if (err < 0) { | 3336 | if (err < 0) { |
3345 | kfree(qdev->msi_x_entry); | 3337 | kfree(qdev->msi_x_entry); |
3346 | qdev->msi_x_entry = NULL; | 3338 | qdev->msi_x_entry = NULL; |
3347 | netif_warn(qdev, ifup, qdev->ndev, | 3339 | netif_warn(qdev, ifup, qdev->ndev, |
3348 | "MSI-X Enable failed, trying MSI.\n"); | 3340 | "MSI-X Enable failed, trying MSI.\n"); |
3349 | qlge_irq_type = MSI_IRQ; | 3341 | qlge_irq_type = MSI_IRQ; |
3350 | } else if (err == 0) { | 3342 | } else { |
3343 | qdev->intr_count = err; | ||
3351 | set_bit(QL_MSIX_ENABLED, &qdev->flags); | 3344 | set_bit(QL_MSIX_ENABLED, &qdev->flags); |
3352 | netif_info(qdev, ifup, qdev->ndev, | 3345 | netif_info(qdev, ifup, qdev->ndev, |
3353 | "MSI-X Enabled, got %d vectors.\n", | 3346 | "MSI-X Enabled, got %d vectors.\n", |