diff options
author | Bui Quang Minh <minhquangbui99@gmail.com> | 2025-07-05 14:55:14 +0700 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2025-07-09 18:41:35 -0700 |
commit | f47e8f618c7d2e51b0ea5f22ad550e7f62ec45c1 (patch) | |
tree | dcebcef4431a0593f2e0e26e5d09708f34beb8c6 | |
parent | b4bb2ac099ca0b944695be41ade5562d895a8751 (diff) |
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 <minhquangbui99@gmail.com>
Link: https://patch.msgid.link/20250705075515.34260-1-minhquangbui99@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r-- | drivers/net/virtio_net.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 9f6e0153ed2d..4d995a47a116 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); |