On Sat, 21 Jun 2025 21:49:52 +0700, Bui Quang Minh <minhquangbu...@gmail.com> 
wrote:
> 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 <minhquangbu...@gmail.com>

Reviewed-by: Xuan Zhuo <xuanz...@linux.alibaba.com>

> ---
>  drivers/net/virtio_net.c | 16 ++++++++++++++--
>  1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index 1eb237cd5d0b..4e942ea1bfa3 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -1159,7 +1159,19 @@ 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 {
> +             /* This is the same as xsk_buff_set_size but with the adjusted
> +              * xdp->data.
> +              */
> +             xdp->data = xdp->data_hard_start + XDP_PACKET_HEADROOM;
> +             xdp->data -= vi->hdr_len;
> +             xdp->data_meta = xdp->data;
> +             xdp->data_end = xdp->data + len;
> +             xdp->flags = 0;
> +     }
> +
>       xsk_buff_dma_sync_for_cpu(xdp);
>
>       return xdp;
> @@ -1284,7 +1296,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);
>
> --
> 2.43.0
>

Reply via email to