cxgb4vf: Use pci_enable_msix_range() instead of pci_enable_msix()
authorAlexander Gordeev <agordeev@redhat.com>
Tue, 18 Feb 2014 10:08:01 +0000 (11:08 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 18 Feb 2014 20:33:30 +0000 (15:33 -0500)
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.

Signed-off-by: Alexander Gordeev <agordeev@redhat.com>
Cc: Casey Leedom <leedom@chelsio.com>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c

index 509fed946a2c924788207a6ef37f46a939d1062d..1d0fe9b603120d65d5eaa2daae43d65be5a457fa 100644 (file)
@@ -2444,7 +2444,7 @@ static void reduce_ethqs(struct adapter *adapter, int n)
  */
 static int enable_msix(struct adapter *adapter)
 {
-       int i, err, want, need;
+       int i, want, need, nqsets;
        struct msix_entry entries[MSIX_ENTRIES];
        struct sge *s = &adapter->sge;
 
@@ -2460,25 +2460,23 @@ static int enable_msix(struct adapter *adapter)
         */
        want = s->max_ethqsets + MSIX_EXTRAS;
        need = adapter->params.nports + MSIX_EXTRAS;
-       while ((err = pci_enable_msix(adapter->pdev, entries, want)) >= need)
-               want = err;
 
-       if (err == 0) {
-               int nqsets = want - MSIX_EXTRAS;
-               if (nqsets < s->max_ethqsets) {
-                       dev_warn(adapter->pdev_dev, "only enough MSI-X vectors"
-                                " for %d Queue Sets\n", nqsets);
-                       s->max_ethqsets = nqsets;
-                       if (nqsets < s->ethqsets)
-                               reduce_ethqs(adapter, nqsets);
-               }
-               for (i = 0; i < want; ++i)
-                       adapter->msix_info[i].vec = entries[i].vector;
-       } else if (err > 0) {
-               dev_info(adapter->pdev_dev, "only %d MSI-X vectors left,"
-                        " not using MSI-X\n", err);
+       want = pci_enable_msix_range(adapter->pdev, entries, need, want);
+       if (want < 0)
+               return want;
+
+       nqsets = want - MSIX_EXTRAS;
+       if (nqsets < s->max_ethqsets) {
+               dev_warn(adapter->pdev_dev, "only enough MSI-X vectors"
+                        " for %d Queue Sets\n", nqsets);
+               s->max_ethqsets = nqsets;
+               if (nqsets < s->ethqsets)
+                       reduce_ethqs(adapter, nqsets);
        }
-       return err;
+       for (i = 0; i < want; ++i)
+               adapter->msix_info[i].vec = entries[i].vector;
+
+       return 0;
 }
 
 static const struct net_device_ops cxgb4vf_netdev_ops  = {