virtio-net: update bytes calculation for xdp_frame
authorHeng Qi <hengqi@linux.alibaba.com>
Sat, 14 Jan 2023 08:22:23 +0000 (16:22 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 16 Jan 2023 11:15:48 +0000 (11:15 +0000)
Update relative record value for xdp_frame as basis
for multi-buffer xdp transmission.

Signed-off-by: Heng Qi <hengqi@linux.alibaba.com>
Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/virtio_net.c

index ba4d5e66a4d71d26da4a6268b3f3bd2ba1ea73ca..5e0cdab897db6681db9ff5d4ae7e21abacdbe491 100644 (file)
@@ -665,7 +665,7 @@ static int virtnet_xdp_xmit(struct net_device *dev,
                if (likely(is_xdp_frame(ptr))) {
                        struct xdp_frame *frame = ptr_to_xdp(ptr);
 
-                       bytes += frame->len;
+                       bytes += xdp_get_frame_len(frame);
                        xdp_return_frame(frame);
                } else {
                        struct sk_buff *skb = ptr;
@@ -1611,7 +1611,7 @@ static void free_old_xmit_skbs(struct send_queue *sq, bool in_napi)
                } else {
                        struct xdp_frame *frame = ptr_to_xdp(ptr);
 
-                       bytes += frame->len;
+                       bytes += xdp_get_frame_len(frame);
                        xdp_return_frame(frame);
                }
                packets++;