diff options
| author | Jakub Kicinski <[email protected]> | 2025-02-13 20:43:01 +0000 |
|---|---|---|
| committer | Jakub Kicinski <[email protected]> | 2025-02-13 20:43:30 +0000 |
| commit | 7a7e0197133d18cfd9931e7d3a842d0f5730223f (patch) | |
| tree | b9e558f5cbc5e4bec8c32b37e4168976f52f6cc7 /net/ipv6/ip6_input.c | |
| parent | net: usb: asix_devices: add FiberGecko DeviceID (diff) | |
| parent | Merge tag 'net-6.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/net... (diff) | |
| download | kernel-7a7e0197133d18cfd9931e7d3a842d0f5730223f.tar.gz kernel-7a7e0197133d18cfd9931e7d3a842d0f5730223f.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Cross-merge networking fixes after downstream PR (net-6.14-rc3).
No conflicts or adjacent changes.
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'net/ipv6/ip6_input.c')
| -rw-r--r-- | net/ipv6/ip6_input.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/net/ipv6/ip6_input.c b/net/ipv6/ip6_input.c index 70c0e16c0ae6..39da6a7ce5f1 100644 --- a/net/ipv6/ip6_input.c +++ b/net/ipv6/ip6_input.c @@ -477,9 +477,7 @@ discard: static int ip6_input_finish(struct net *net, struct sock *sk, struct sk_buff *skb) { skb_clear_delivery_time(skb); - rcu_read_lock(); ip6_protocol_deliver_rcu(net, skb, 0, false); - rcu_read_unlock(); return 0; } @@ -487,9 +485,15 @@ static int ip6_input_finish(struct net *net, struct sock *sk, struct sk_buff *sk int ip6_input(struct sk_buff *skb) { - return NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_IN, - dev_net(skb->dev), NULL, skb, skb->dev, NULL, - ip6_input_finish); + int res; + + rcu_read_lock(); + res = NF_HOOK(NFPROTO_IPV6, NF_INET_LOCAL_IN, + dev_net_rcu(skb->dev), NULL, skb, skb->dev, NULL, + ip6_input_finish); + rcu_read_unlock(); + + return res; } EXPORT_SYMBOL_GPL(ip6_input); |
