diff options
author | Hao Chen <chenhao288@hisilicon.com> | 2022-05-09 15:55:27 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-05-09 14:30:37 +0100 |
commit | a4fe9b6db6f93694fa14b41e764a2c0f147f13da (patch) | |
tree | 2fd4ccb7862027bd417019b0a75c432e7078fb3c /drivers/net/ethernet/hisilicon/hns3 | |
parent | 1728c0567f70583d5e8aa698ce5778c481cc8de7 (diff) | |
download | linux-stable-a4fe9b6db6f93694fa14b41e764a2c0f147f13da.tar.gz linux-stable-a4fe9b6db6f93694fa14b41e764a2c0f147f13da.tar.bz2 linux-stable-a4fe9b6db6f93694fa14b41e764a2c0f147f13da.zip |
net: hns3: fix access null pointer issue when set tx-buf-size as 0
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>
Diffstat (limited to 'drivers/net/ethernet/hisilicon/hns3')
-rw-r--r-- | drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c index 1db8a86f046d..6d20974519fe 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c @@ -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: |