Message ID | 20230114082229.62143-2-hengqi@linux.alibaba.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 484beac2ffc1d1dde5fde601deb28f3a82ac250e |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | virtio-net: support multi buffer xdp | expand |
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 9cce7dec7366..443aa7b8f0ad 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -1419,8 +1419,11 @@ static int add_recvbuf_mergeable(struct virtnet_info *vi, /* To avoid internal fragmentation, if there is very likely not * enough space for another buffer, add the remaining space to * the current buffer. + * XDP core assumes that frame_size of xdp_buff and the length + * of the frag are PAGE_SIZE, so we disable the hole mechanism. */ - len += hole; + if (!headroom) + len += hole; alloc_frag->offset += hole; }