|
@@ -3331,23 +3331,16 @@ static void ql_enable_msix(struct ql_adapter *qdev)
|
|
|
for (i = 0; i < qdev->intr_count; i++)
|
|
|
qdev->msi_x_entry[i].entry = i;
|
|
|
|
|
|
- /* Loop to get our vectors. We start with
|
|
|
- * what we want and settle for what we get.
|
|
|
- */
|
|
|
- do {
|
|
|
- err = pci_enable_msix(qdev->pdev,
|
|
|
- qdev->msi_x_entry, qdev->intr_count);
|
|
|
- if (err > 0)
|
|
|
- qdev->intr_count = err;
|
|
|
- } while (err > 0);
|
|
|
-
|
|
|
+ err = pci_enable_msix_range(qdev->pdev, qdev->msi_x_entry,
|
|
|
+ 1, qdev->intr_count);
|
|
|
if (err < 0) {
|
|
|
kfree(qdev->msi_x_entry);
|
|
|
qdev->msi_x_entry = NULL;
|
|
|
netif_warn(qdev, ifup, qdev->ndev,
|
|
|
"MSI-X Enable failed, trying MSI.\n");
|
|
|
qlge_irq_type = MSI_IRQ;
|
|
|
- } else if (err == 0) {
|
|
|
+ } else {
|
|
|
+ qdev->intr_count = err;
|
|
|
set_bit(QL_MSIX_ENABLED, &qdev->flags);
|
|
|
netif_info(qdev, ifup, qdev->ndev,
|
|
|
"MSI-X Enabled, got %d vectors.\n",
|