diff options
author | Edward Cree <ecree@solarflare.com> | 2014-11-03 14:14:35 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-11-03 15:57:50 -0500 |
commit | 9fd3d3a4307283a1d85d9a383223055954b7135f (patch) | |
tree | 8172bfa2eb9d863ce9c22ee284a35f7dfed62786 | |
parent | c495d64836e4e2d45c6d53621b4722abf4d36499 (diff) | |
download | linux-9fd3d3a4307283a1d85d9a383223055954b7135f.tar.bz2 |
sfc: don't BUG_ON efx->max_channels == 0 in probe
efx_ef10_probe() was BUGging out if the BAR2 size was 0. This is
unnecessarily violent; instead we should just fail to probe the device.
Kept a WARN_ON as this problem indicates a broken or misconfigured NIC.
Signed-off-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/sfc/ef10.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/sfc/ef10.c b/drivers/net/ethernet/sfc/ef10.c index 002d4cdc319f..a77f05ce8325 100644 --- a/drivers/net/ethernet/sfc/ef10.c +++ b/drivers/net/ethernet/sfc/ef10.c @@ -180,7 +180,8 @@ static int efx_ef10_probe(struct efx_nic *efx) EFX_MAX_CHANNELS, resource_size(&efx->pci_dev->resource[EFX_MEM_BAR]) / (EFX_VI_PAGE_SIZE * EFX_TXQ_TYPES)); - BUG_ON(efx->max_channels == 0); + if (WARN_ON(efx->max_channels == 0)) + return -EIO; nic_data = kzalloc(sizeof(*nic_data), GFP_KERNEL); if (!nic_data) |