diff options
| author | Alexander Gordeev <agordeev@redhat.com> | 2014-02-18 05:12:00 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2014-02-18 15:33:34 -0500 |
| commit | 184603d8825773afae24279e055440dddada478d (patch) | |
| tree | 20da459f5f4f4710946a7766aa972ee55cd14eba /drivers/net/ethernet/sfc | |
| parent | 50b483a1457abd6fe27117f0507297e107ef42b2 (diff) | |
sfc: 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: Shradha Shah <sshah@solarflare.com>
Cc: linux-net-drivers@solarflare.com
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Acked-by: Shradha Shah <sshah@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/sfc')
| -rw-r--r-- | drivers/net/ethernet/sfc/efx.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c index 62d1a78984c1..d72e0038a740 100644 --- a/drivers/net/ethernet/sfc/efx.c +++ b/drivers/net/ethernet/sfc/efx.c | |||
| @@ -1344,20 +1344,23 @@ static int efx_probe_interrupts(struct efx_nic *efx) | |||
| 1344 | 1344 | ||
| 1345 | for (i = 0; i < n_channels; i++) | 1345 | for (i = 0; i < n_channels; i++) |
| 1346 | xentries[i].entry = i; | 1346 | xentries[i].entry = i; |
| 1347 | rc = pci_enable_msix(efx->pci_dev, xentries, n_channels); | 1347 | rc = pci_enable_msix_range(efx->pci_dev, |
| 1348 | if (rc > 0) { | 1348 | xentries, 1, n_channels); |
| 1349 | if (rc < 0) { | ||
| 1350 | /* Fall back to single channel MSI */ | ||
| 1351 | efx->interrupt_mode = EFX_INT_MODE_MSI; | ||
| 1352 | netif_err(efx, drv, efx->net_dev, | ||
| 1353 | "could not enable MSI-X\n"); | ||
| 1354 | } else if (rc < n_channels) { | ||
| 1349 | netif_err(efx, drv, efx->net_dev, | 1355 | netif_err(efx, drv, efx->net_dev, |
| 1350 | "WARNING: Insufficient MSI-X vectors" | 1356 | "WARNING: Insufficient MSI-X vectors" |
| 1351 | " available (%d < %u).\n", rc, n_channels); | 1357 | " available (%d < %u).\n", rc, n_channels); |
| 1352 | netif_err(efx, drv, efx->net_dev, | 1358 | netif_err(efx, drv, efx->net_dev, |
| 1353 | "WARNING: Performance may be reduced.\n"); | 1359 | "WARNING: Performance may be reduced.\n"); |
| 1354 | EFX_BUG_ON_PARANOID(rc >= n_channels); | ||
| 1355 | n_channels = rc; | 1360 | n_channels = rc; |
| 1356 | rc = pci_enable_msix(efx->pci_dev, xentries, | ||
| 1357 | n_channels); | ||
| 1358 | } | 1361 | } |
| 1359 | 1362 | ||
| 1360 | if (rc == 0) { | 1363 | if (rc > 0) { |
| 1361 | efx->n_channels = n_channels; | 1364 | efx->n_channels = n_channels; |
| 1362 | if (n_channels > extra_channels) | 1365 | if (n_channels > extra_channels) |
| 1363 | n_channels -= extra_channels; | 1366 | n_channels -= extra_channels; |
| @@ -1373,11 +1376,6 @@ static int efx_probe_interrupts(struct efx_nic *efx) | |||
| 1373 | for (i = 0; i < efx->n_channels; i++) | 1376 | for (i = 0; i < efx->n_channels; i++) |
| 1374 | efx_get_channel(efx, i)->irq = | 1377 | efx_get_channel(efx, i)->irq = |
| 1375 | xentries[i].vector; | 1378 | xentries[i].vector; |
| 1376 | } else { | ||
| 1377 | /* Fall back to single channel MSI */ | ||
| 1378 | efx->interrupt_mode = EFX_INT_MODE_MSI; | ||
| 1379 | netif_err(efx, drv, efx->net_dev, | ||
| 1380 | "could not enable MSI-X\n"); | ||
| 1381 | } | 1379 | } |
| 1382 | } | 1380 | } |
| 1383 | 1381 | ||
