diff options
author | Wenliang Wang <wangwenliang.1995@bytedance.com> | 2021-12-16 04:11:35 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-12-16 12:07:19 +0100 |
commit | 053c9e18c6f9cf82242ef35ac21cae1842725714 (patch) | |
tree | d1e3961814cccbc09374ed6e88ab1e5143f38d2c /drivers/net | |
parent | dsa: mv88e6xxx: fix debug print for SPEED_UNFORCED (diff) | |
download | linux-053c9e18c6f9cf82242ef35ac21cae1842725714.tar.xz linux-053c9e18c6f9cf82242ef35ac21cae1842725714.zip |
virtio_net: fix rx_drops stat for small pkts
We found the stat of rx drops for small pkts does not increment when
build_skb fail, it's not coherent with other mode's rx drops stat.
Signed-off-by: Wenliang Wang <wangwenliang.1995@bytedance.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/virtio_net.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 55db6a336f7e..b107835242ad 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -733,7 +733,7 @@ static struct sk_buff *receive_small(struct net_device *dev, pr_debug("%s: rx error: len %u exceeds max size %d\n", dev->name, len, GOOD_PACKET_LEN); dev->stats.rx_length_errors++; - goto err_len; + goto err; } if (likely(!vi->xdp_enabled)) { @@ -825,10 +825,8 @@ static struct sk_buff *receive_small(struct net_device *dev, skip_xdp: skb = build_skb(buf, buflen); - if (!skb) { - put_page(page); + if (!skb) goto err; - } skb_reserve(skb, headroom - delta); skb_put(skb, len); if (!xdp_prog) { @@ -839,13 +837,12 @@ skip_xdp: if (metasize) skb_metadata_set(skb, metasize); -err: return skb; err_xdp: rcu_read_unlock(); stats->xdp_drops++; -err_len: +err: stats->drops++; put_page(page); xdp_xmit: |