diff options
author | Eric Dumazet <edumazet@google.com> | 2021-11-23 23:56:08 +0100 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2021-11-25 02:21:42 +0100 |
commit | 627b94f75b82d13d1530b59155a545fd99d807db (patch) | |
tree | 6b0cc9cd576b1c9355b9f1fdf0ab7f3d4ab44e7c /net/ipv6/ip6_offload.c | |
parent | gro: remove rcu_read_lock/rcu_read_unlock from gro_receive handlers (diff) | |
download | linux-627b94f75b82d13d1530b59155a545fd99d807db.tar.xz linux-627b94f75b82d13d1530b59155a545fd99d807db.zip |
gro: remove rcu_read_lock/rcu_read_unlock from gro_complete handlers
All gro_complete() handlers are called from napi_gro_complete()
while rcu_read_lock() has been called.
There is no point stacking more rcu_read_lock()
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/ipv6/ip6_offload.c')
-rw-r--r-- | net/ipv6/ip6_offload.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/net/ipv6/ip6_offload.c b/net/ipv6/ip6_offload.c index 67b9ba5e159c..48674888f2dc 100644 --- a/net/ipv6/ip6_offload.c +++ b/net/ipv6/ip6_offload.c @@ -327,18 +327,14 @@ INDIRECT_CALLABLE_SCOPE int ipv6_gro_complete(struct sk_buff *skb, int nhoff) iph->payload_len = htons(skb->len - nhoff - sizeof(*iph)); - rcu_read_lock(); - nhoff += sizeof(*iph) + ipv6_exthdrs_len(iph, &ops); if (WARN_ON(!ops || !ops->callbacks.gro_complete)) - goto out_unlock; + goto out; err = INDIRECT_CALL_L4(ops->callbacks.gro_complete, tcp6_gro_complete, udp6_gro_complete, skb, nhoff); -out_unlock: - rcu_read_unlock(); - +out: return err; } |