diff options
Diffstat (limited to 'drivers/ntb/ntb_hw.c')
-rw-r--r-- | drivers/ntb/ntb_hw.c | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/drivers/ntb/ntb_hw.c b/drivers/ntb/ntb_hw.c index 22a7eb4..372e08c 100644 --- a/drivers/ntb/ntb_hw.c +++ b/drivers/ntb/ntb_hw.c @@ -1089,11 +1089,9 @@ static int ntb_setup_snb_msix(struct ntb_device *ndev, int msix_entries) if (msix_entries < ndev->limits.msix_cnt) return -ENOSPC; - rc = pci_enable_msix(pdev, ndev->msix_entries, msix_entries); + rc = pci_enable_msix_exact(pdev, ndev->msix_entries, msix_entries); if (rc < 0) return rc; - else if (rc > 0) - return -ENOSPC; for (i = 0; i < msix_entries; i++) { msix = &ndev->msix_entries[i]; @@ -1139,18 +1137,10 @@ static int ntb_setup_bwd_msix(struct ntb_device *ndev, int msix_entries) struct msix_entry *msix; int rc, i; -retry: - rc = pci_enable_msix(pdev, ndev->msix_entries, msix_entries); - if (rc < 0) - return rc; - else if (rc > 0) { - dev_warn(&pdev->dev, - "Only %d MSI-X vectors. " - "Limiting the number of queues to that number.\n", - rc); - msix_entries = rc; - goto retry; - } + msix_entries = pci_enable_msix_range(pdev, ndev->msix_entries, + 1, msix_entries); + if (msix_entries < 0) + return msix_entries; for (i = 0; i < msix_entries; i++) { msix = &ndev->msix_entries[i]; |