On 2020/12/25 18:35, wangyunjian wrote:
From: Yunjian Wang <wangyunj...@huawei.com>
The function skb_copy() could return NULL, the return value
need to be checked.
Fixes: b5996f11ea54 ("net: add Hisilicon Network Subsystem basic ethernet
support")
Signed-off-by: Yunjian Wang <wangyunj...@huawei.com>
---
drivers/net/ethernet/hisilicon/hns/hns_ethtool.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
index 7165da0ee9aa..ad18f0e20a23 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
@@ -415,6 +415,10 @@ static void __lb_other_process(struct hns_nic_ring_data
*ring_data,
/* for mutl buffer*/
new_skb = skb_copy(skb, GFP_ATOMIC);
dev_kfree_skb_any(skb);
+ if (!new_skb) {
+ ndev->stats.rx_dropped++;
You can add a new drop type to ring->states, and then add it to
ndev->stats.rx_dropped,
then you can know that the rx_dropped is from skb_copy() failed.
This process is from self-test, maybe you can just add a error message
rather than increase
the ndev->stats.rx_dropped.
+ return;
+ }
skb = new_skb;
check_ok = 0;