On Wed, Sep 18, 2019 at 3:25 AM Steffen Klassert <steffen.klass...@secunet.com> wrote: > > This patch extends UDP GRO to support fraglist GRO/GSO > by using the previously introduced infrastructure. > All UDP packets that are not targeted to a GRO capable > UDP sockets are going to fraglist GRO now (local input > and forward). > > Signed-off-by: Steffen Klassert <steffen.klass...@secunet.com>
> @@ -419,7 +460,7 @@ struct sk_buff *udp_gro_receive(struct list_head *head, > struct sk_buff *skb, > (skb->ip_summed != CHECKSUM_PARTIAL && > NAPI_GRO_CB(skb)->csum_cnt == 0 && > !NAPI_GRO_CB(skb)->csum_valid)) > - goto out_unlock; > + goto out; > > /* mark that this skb passed once through the tunnel gro layer */ > NAPI_GRO_CB(skb)->encap_mark = 1; > @@ -446,8 +487,7 @@ struct sk_buff *udp_gro_receive(struct list_head *head, > struct sk_buff *skb, > skb_gro_postpull_rcsum(skb, uh, sizeof(struct udphdr)); > pp = call_gro_receive_sk(udp_sk(sk)->gro_receive, sk, head, skb); > > -out_unlock: > - rcu_read_unlock(); > +out: > skb_gro_flush_final(skb, pp, flush); > return pp; > } This probably belongs in patch 1?