Merge tag 'omap-for-v3.16/l3-noc-signed' of git://git.kernel.org/pub/scm/linux/kernel...
[firefly-linux-kernel-4.4.55.git] / drivers / ntb / ntb_hw.c
index 22a7eb415d763563e185f4c477cb334ad40361fb..372e08c4ffefb76852e4d640e6936f3529e8c215 100644 (file)
@@ -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];