> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf
> Of Jakub Sitnicki via Intel-wired-lan
> Sent: Saturday, January 10, 2026 10:05 PM
> To: [email protected]
> Cc: David S. Miller <[email protected]>; Eric Dumazet
> <[email protected]>; Jakub Kicinski <[email protected]>; Paolo Abeni
> <[email protected]>; Simon Horman <[email protected]>; Michael Chan
> <[email protected]>; Pavan Chebbi <[email protected]>;
> Andrew Lunn <[email protected]>; Nguyen, Anthony L
> <[email protected]>; Kitszel, Przemyslaw
> <[email protected]>; Saeed Mahameed <[email protected]>;
> Leon Romanovsky <[email protected]>; Tariq Toukan <[email protected]>;
> Mark Bloch <[email protected]>; Alexei Starovoitov <[email protected]>;
> Daniel Borkmann <[email protected]>; Jesper Dangaard Brouer
> <[email protected]>; John Fastabend <[email protected]>;
> Stanislav Fomichev <[email protected]>; intel-wired-
> [email protected]; [email protected]; [email protected]
> Subject: [Intel-wired-lan] [PATCH net-next 08/10] veth: Call
> skb_metadata_set when skb->data points past metadata
> 
> Prepare to copy the XDP metadata into an skb extension in
> skb_metadata_set.
> 
> Unlike other drivers, veth calls skb_metadata_set after
> eth_type_trans, which pulls the Ethernet header and moves skb->data.
> This violates the new contract with skb_metadata.
> 
> Adjust the driver to pull the MAC header after calling
> skb_metadata_set.
> 
> Signed-off-by: Jakub Sitnicki <[email protected]>
> ---
>  drivers/net/veth.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/veth.c b/drivers/net/veth.c index
> 14e6f2a2fb77..1d1dbfa2e5ef 100644
> --- a/drivers/net/veth.c
> +++ b/drivers/net/veth.c
> @@ -874,11 +874,11 @@ static struct sk_buff *veth_xdp_rcv_skb(struct
> veth_rq *rq,
>       else
>               skb->data_len = 0;
> 
> -     skb->protocol = eth_type_trans(skb, rq->dev);
> -
>       metalen = xdp->data - xdp->data_meta;
>       if (metalen)
>               skb_metadata_set(skb, metalen);
> +
> +     skb->protocol = eth_type_trans(skb, rq->dev);
>  out:
>       return skb;
>  drop:
> 
> --
> 2.43.0
Reviewed-by: Aleksandr Loktionov <[email protected]>

Reply via email to