diff options
author | Satish Baddipadige <sbaddipa@broadcom.com> | 2016-05-15 10:04:43 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-05-15 20:35:47 +0300 |
commit | 18d6e4e2d800cbd44a7d7d215a49f99c6508e4a5 (patch) | |
tree | d57b0f3a48a5380427b984d9cad551d3b7ae01c3 | |
parent | 909b27f706433a0b3dff79aa259de63aafe40a42 (diff) | |
download | linux-18d6e4e2d800cbd44a7d7d215a49f99c6508e4a5.tar.xz |
bnxt_en: Fix invalid max channel parameter in ethtool -l.
When there is only 1 MSI-X vector or in INTA mode, tx and rx pre-set
max channel parameters are shown incorrectly in ethtool -l. With only 1
vector, bnxt_get_max_rings() will return -ENOMEM. bnxt_get_channels
should check this return value, and set max_rx/max_tx to 0 if it is
non-zero.
Signed-off-by: Satish Baddipadige <sbaddipa@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c index d6e41f237f2c..28171f96ebbe 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c @@ -327,7 +327,11 @@ static void bnxt_get_channels(struct net_device *dev, bnxt_get_max_rings(bp, &max_rx_rings, &max_tx_rings, true); channel->max_combined = max_rx_rings; - bnxt_get_max_rings(bp, &max_rx_rings, &max_tx_rings, false); + if (bnxt_get_max_rings(bp, &max_rx_rings, &max_tx_rings, false)) { + max_rx_rings = 0; + max_tx_rings = 0; + } + tcs = netdev_get_num_tc(dev); if (tcs > 1) max_tx_rings /= tcs; |