From: Satish Baddipadige Date: Sun, 15 May 2016 07:04:43 +0000 (-0400) Subject: bnxt_en: Fix invalid max channel parameter in ethtool -l. X-Git-Tag: v4.1.12-92~126^2~25 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=b5c2686ad0760aaed62ed5d2d4de28b0c572e8d1;p=users%2Fjedix%2Flinux-maple.git bnxt_en: Fix invalid max channel parameter in ethtool -l. Orabug: 23221795 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 Signed-off-by: Michael Chan Signed-off-by: David S. Miller (cherry picked from commit 18d6e4e2d800cbd44a7d7d215a49f99c6508e4a5) Signed-off-by: Brian Maly --- diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c index 7060e736891d..cb47f918a341 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c @@ -332,7 +332,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;