Skip to content

Commit 053c9e1

Browse files
wwlliangliangdavem330
authored andcommitted
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 <[email protected]> Acked-by: Jason Wang <[email protected]> Acked-by: Michael S. Tsirkin <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent e08cdf6 commit 053c9e1

File tree

1 file changed

+3
-6
lines changed

1 file changed

+3
-6
lines changed

drivers/net/virtio_net.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -733,7 +733,7 @@ static struct sk_buff *receive_small(struct net_device *dev,
733733
pr_debug("%s: rx error: len %u exceeds max size %d\n",
734734
dev->name, len, GOOD_PACKET_LEN);
735735
dev->stats.rx_length_errors++;
736-
goto err_len;
736+
goto err;
737737
}
738738

739739
if (likely(!vi->xdp_enabled)) {
@@ -825,10 +825,8 @@ static struct sk_buff *receive_small(struct net_device *dev,
825825

826826
skip_xdp:
827827
skb = build_skb(buf, buflen);
828-
if (!skb) {
829-
put_page(page);
828+
if (!skb)
830829
goto err;
831-
}
832830
skb_reserve(skb, headroom - delta);
833831
skb_put(skb, len);
834832
if (!xdp_prog) {
@@ -839,13 +837,12 @@ static struct sk_buff *receive_small(struct net_device *dev,
839837
if (metasize)
840838
skb_metadata_set(skb, metasize);
841839

842-
err:
843840
return skb;
844841

845842
err_xdp:
846843
rcu_read_unlock();
847844
stats->xdp_drops++;
848-
err_len:
845+
err:
849846
stats->drops++;
850847
put_page(page);
851848
xdp_xmit:

0 commit comments

Comments
 (0)