Quoting Paolo Abeni pabeni@redhat.com:
diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c index 54e06b88af69..458c888337a5 100644 --- a/net/ipv4/udp_offload.c +++ b/net/ipv4/udp_offload.c @@ -526,6 +526,8 @@ struct sk_buff *udp_gro_receive(struct list_head *head, struct sk_buff *skb, if ((!sk && (skb->dev->features & NETIF_F_GRO_UDP_FWD)) || (sk && udp_sk(sk)->gro_enabled) || NAPI_GRO_CB(skb)->is_flist) pp = call_gro_receive(udp_gro_receive_segment, head, skb);
else
goto out; return pp; }
Impressive! This patch, applied to 5.13, fixes the problem. What I like even more is that it again confirms my suspicion that an "if" without an "else" is always a code smell. :-)
With this and the reproducer in my previous mail, is there still value in doing the "perf" stuff?
Thanks, -Matthias