From: Bui Quang Minh Date: Sat, 5 Jul 2025 07:55:14 +0000 (+0700) Subject: virtio-net: xsk: rx: move the xdp->data adjustment to buf_to_xdp() X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f47e8f618c7d2e51b0ea5f22ad550e7f62ec45c1;p=thirdparty%2Fkernel%2Flinux.git virtio-net: xsk: rx: move the xdp->data adjustment to buf_to_xdp() This commit does not do any functional changes. It moves xdp->data adjustment for buffer other than first buffer to buf_to_xdp() helper so that the xdp_buff adjustment does not scatter over different functions. Signed-off-by: Bui Quang Minh Link: https://patch.msgid.link/20250705075515.34260-1-minhquangbui99@gmail.com Signed-off-by: Jakub Kicinski --- diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 9f6e0153ed2db..4d995a47a1163 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -1179,7 +1179,14 @@ static struct xdp_buff *buf_to_xdp(struct virtnet_info *vi, return NULL; } - xsk_buff_set_size(xdp, len); + if (first_buf) { + xsk_buff_set_size(xdp, len); + } else { + xdp_prepare_buff(xdp, xdp->data_hard_start, + XDP_PACKET_HEADROOM - vi->hdr_len, len, 1); + xdp->flags = 0; + } + xsk_buff_dma_sync_for_cpu(xdp); return xdp; @@ -1304,7 +1311,7 @@ static int xsk_append_merge_buffer(struct virtnet_info *vi, goto err; } - memcpy(buf, xdp->data - vi->hdr_len, len); + memcpy(buf, xdp->data, len); xsk_buff_free(xdp);