bna: Use pci_enable_msix_range() instead of pci_enable_msix()
authorAlexander Gordeev <agordeev@redhat.com>
Tue, 18 Feb 2014 10:07:56 +0000 (11:07 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 18 Feb 2014 20:33:29 +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: Rasesh Mody <rmody@brocade.com>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/brocade/bna/bnad.c

index cf64f3d0b60d91a1de68836523c6304086dc9ece..bf436d0a10949b0575754abe6fb3edb60a4b49aa 100644 (file)
@@ -2666,9 +2666,11 @@ bnad_enable_msix(struct bnad *bnad)
        for (i = 0; i < bnad->msix_num; i++)
                bnad->msix_table[i].entry = i;
 
-       ret = pci_enable_msix(bnad->pcidev, bnad->msix_table, bnad->msix_num);
-       if (ret > 0) {
-               /* Not enough MSI-X vectors. */
+       ret = pci_enable_msix_range(bnad->pcidev, bnad->msix_table,
+                                   1, bnad->msix_num);
+       if (ret < 0) {
+               goto intx_mode;
+       } else if (ret < bnad->msix_num) {
                pr_warn("BNA: %d MSI-X vectors allocated < %d requested\n",
                        ret, bnad->msix_num);
 
@@ -2681,18 +2683,11 @@ bnad_enable_msix(struct bnad *bnad)
                bnad->msix_num = BNAD_NUM_TXQ + BNAD_NUM_RXP +
                         BNAD_MAILBOX_MSIX_VECTORS;
 
-               if (bnad->msix_num > ret)
-                       goto intx_mode;
-
-               /* Try once more with adjusted numbers */
-               /* If this fails, fall back to INTx */
-               ret = pci_enable_msix(bnad->pcidev, bnad->msix_table,
-                                     bnad->msix_num);
-               if (ret)
+               if (bnad->msix_num > ret) {
+                       pci_disable_msix(bnad->pcidev);
                        goto intx_mode;
-
-       } else if (ret < 0)
-               goto intx_mode;
+               }
+       }
 
        pci_intx(bnad->pcidev, 0);