Quoting Paolo Abeni <pabeni@xxxxxxxxxx>:
---
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