On 27/04/2024 21:24, Felix Fietkau wrote:
> Calling skb_copy on a SKB_GSO_FRAGLIST skb is not valid, since it returns
> an invalid linearized skb. This code only needs to change the ethernet
> header, so pskb_copy is the right function to call here.
> 
> Fixes: 6db6f0eae605 ("bridge: multicast to unicast")
> Signed-off-by: Felix Fietkau <n...@nbd.name>
> ---
>  net/bridge/br_forward.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c
> index 7431f89e897b..d7c35f55bd69 100644
> --- a/net/bridge/br_forward.c
> +++ b/net/bridge/br_forward.c
> @@ -266,7 +266,7 @@ static void maybe_deliver_addr(struct net_bridge_port *p, 
> struct sk_buff *skb,
>       if (skb->dev == p->dev && ether_addr_equal(src, addr))
>               return;
>  
> -     skb = skb_copy(skb, GFP_ATOMIC);
> +     skb = pskb_copy(skb, GFP_ATOMIC);
>       if (!skb) {
>               DEV_STATS_INC(dev, tx_dropped);
>               return;

Acked-by: Nikolay Aleksandrov <ra...@blackwall.org>

Reply via email to