net: hns3: fix access null pointer issue when set tx-buf-size as 0
authorHao Chen <chenhao288@hisilicon.com>
Mon, 9 May 2022 07:55:27 +0000 (15:55 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 9 May 2022 13:30:37 +0000 (14:30 +0100)
When set tx-buf-size as 0 by ethtool, hns3_init_tx_spare_buffer()
will return directly and priv->ring->tx_spare->len is uninitialized,
then print function access priv->ring->tx_spare->len will cause
this issue.

When set tx-buf-size as 0 by ethtool, the print function will
print 0 directly and not access priv->ring->tx_spare->len.

Fixes: 2373b35c24ff ("net: hns3: add log for setting tx spare buf size")
Signed-off-by: Hao Chen <chenhao288@hisilicon.com>
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c

index 1db8a86f046d64d5e091df1eb3f9b36763febe92..6d20974519fef04f5cc3074ce482e55268f46b3e 100644 (file)
@@ -1915,8 +1915,11 @@ static int hns3_set_tunable(struct net_device *netdev,
                        return ret;
                }
 
-               netdev_info(netdev, "the active tx spare buf size is %u, due to page order\n",
-                           priv->ring->tx_spare->len);
+               if (!priv->ring->tx_spare)
+                       netdev_info(netdev, "the active tx spare buf size is 0, disable tx spare buffer\n");
+               else
+                       netdev_info(netdev, "the active tx spare buf size is %u, due to page order\n",
+                                   priv->ring->tx_spare->len);
 
                break;
        default: