aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Gordeev <agordeev@redhat.com>2014-02-18 05:11:40 -0500
committerDavid S. Miller <davem@davemloft.net>2014-02-18 15:33:30 -0500
commit7dc4c064943314e1228c8aa0ff7644c7c87b0c8d (patch)
tree8c0397fbb6d8133979ca100017debcac3c257de1
parentabbb6a373ad9bf3a169135cb09494af35f02dbd9 (diff)
benet: Use pci_enable_msix_range() instead of pci_enable_msix()
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: Sathya Perla <sathya.perla@emulex.com> Cc: Subbu Seetharaman <subbu.seetharaman@emulex.com> Cc: Ajit Khaparde <ajit.khaparde@emulex.com> Cc: netdev@vger.kernel.org Cc: linux-pci@vger.kernel.org Acked-by: Sathya Perla <sathya.perla@emulex.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/emulex/benet/be_main.c31
1 files changed, 13 insertions, 18 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index a8cf03ed2de6..4f87f5c0b03c 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -2507,7 +2507,7 @@ static void be_msix_disable(struct be_adapter *adapter)
2507 2507
2508static int be_msix_enable(struct be_adapter *adapter) 2508static int be_msix_enable(struct be_adapter *adapter)
2509{ 2509{
2510 int i, status, num_vec; 2510 int i, num_vec;
2511 struct device *dev = &adapter->pdev->dev; 2511 struct device *dev = &adapter->pdev->dev;
2512 2512
2513 /* If RoCE is supported, program the max number of NIC vectors that 2513 /* If RoCE is supported, program the max number of NIC vectors that
@@ -2523,24 +2523,11 @@ static int be_msix_enable(struct be_adapter *adapter)
2523 for (i = 0; i < num_vec; i++) 2523 for (i = 0; i < num_vec; i++)
2524 adapter->msix_entries[i].entry = i; 2524 adapter->msix_entries[i].entry = i;
2525 2525
2526 status = pci_enable_msix(adapter->pdev, adapter->msix_entries, num_vec); 2526 num_vec = pci_enable_msix_range(adapter->pdev, adapter->msix_entries,
2527 if (status == 0) { 2527 MIN_MSIX_VECTORS, num_vec);
2528 goto done; 2528 if (num_vec < 0)
2529 } else if (status >= MIN_MSIX_VECTORS) { 2529 goto fail;
2530 num_vec = status;
2531 status = pci_enable_msix(adapter->pdev, adapter->msix_entries,
2532 num_vec);
2533 if (!status)
2534 goto done;
2535 }
2536 2530
2537 dev_warn(dev, "MSIx enable failed\n");
2538
2539 /* INTx is not supported in VFs, so fail probe if enable_msix fails */
2540 if (!be_physfn(adapter))
2541 return status;
2542 return 0;
2543done:
2544 if (be_roce_supported(adapter) && num_vec > MIN_MSIX_VECTORS) { 2531 if (be_roce_supported(adapter) && num_vec > MIN_MSIX_VECTORS) {
2545 adapter->num_msix_roce_vec = num_vec / 2; 2532 adapter->num_msix_roce_vec = num_vec / 2;
2546 dev_info(dev, "enabled %d MSI-x vector(s) for RoCE\n", 2533 dev_info(dev, "enabled %d MSI-x vector(s) for RoCE\n",
@@ -2552,6 +2539,14 @@ done:
2552 dev_info(dev, "enabled %d MSI-x vector(s) for NIC\n", 2539 dev_info(dev, "enabled %d MSI-x vector(s) for NIC\n",
2553 adapter->num_msix_vec); 2540 adapter->num_msix_vec);
2554 return 0; 2541 return 0;
2542
2543fail:
2544 dev_warn(dev, "MSIx enable failed\n");
2545
2546 /* INTx is not supported in VFs, so fail probe if enable_msix fails */
2547 if (!be_physfn(adapter))
2548 return num_vec;
2549 return 0;
2555} 2550}
2556 2551
2557static inline int be_msix_vec_get(struct be_adapter *adapter, 2552static inline int be_msix_vec_get(struct be_adapter *adapter,