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;

Reply via email to