diff options
author | Alexander Gordeev <agordeev@redhat.com> | 2014-02-18 05:11:40 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-02-18 15:33:30 -0500 |
commit | 7dc4c064943314e1228c8aa0ff7644c7c87b0c8d (patch) | |
tree | 8c0397fbb6d8133979ca100017debcac3c257de1 | |
parent | abbb6a373ad9bf3a169135cb09494af35f02dbd9 (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.c | 31 |
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 | ||
2508 | static int be_msix_enable(struct be_adapter *adapter) | 2508 | static 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; | ||
2543 | done: | ||
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 | |||
2543 | fail: | ||
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 | ||
2557 | static inline int be_msix_vec_get(struct be_adapter *adapter, | 2552 | static inline int be_msix_vec_get(struct be_adapter *adapter, |