net: hns3: add stats logging when skb padding fails
authorYunsheng Lin <linyunsheng@huawei.com>
Mon, 29 Mar 2021 03:57:53 +0000 (11:57 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 29 Mar 2021 20:21:01 +0000 (13:21 -0700)
skb_put_padto() may fails because of memory failure, sw_err_cnt
is already used to log memory failure in hns3_skb_linearize(),
so use it to log the memory failure for skb_put_padto() too.

Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c

index 5e08ac9..f59cd71 100644 (file)
@@ -1567,6 +1567,11 @@ netdev_tx_t hns3_nic_net_xmit(struct sk_buff *skb, struct net_device *netdev)
        /* Hardware can only handle short frames above 32 bytes */
        if (skb_put_padto(skb, HNS3_MIN_TX_LEN)) {
                hns3_tx_doorbell(ring, 0, !netdev_xmit_more());
+
+               u64_stats_update_begin(&ring->syncp);
+               ring->stats.sw_err_cnt++;
+               u64_stats_update_end(&ring->syncp);
+
                return NETDEV_TX_OK;
        }