diff options
author | Eric Dumazet <edumazet@google.com> | 2024-02-28 16:54:26 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2024-03-01 11:42:30 +0300 |
commit | d289ab65b89c1d4d88417cb6c03e923f21f95fae (patch) | |
tree | 6c1aefc21eab92fb79cd53a53f633009603631be /net/ipv6/ip6_output.c | |
parent | 096361b15577a583afcc28179a08c75cf95e9dae (diff) | |
download | linux-d289ab65b89c1d4d88417cb6c03e923f21f95fae.tar.xz |
ipv6: annotate data-races around cnf.disable_ipv6
disable_ipv6 is read locklessly, add appropriate READ_ONCE()
and WRITE_ONCE() annotations.
v2: do not preload net before rtnl_trylock() in
addrconf_disable_ipv6() (Jiri)
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/ip6_output.c')
-rw-r--r-- | net/ipv6/ip6_output.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 31b86fe661aa..0559bd000585 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -234,7 +234,7 @@ int ip6_output(struct net *net, struct sock *sk, struct sk_buff *skb) skb->protocol = htons(ETH_P_IPV6); skb->dev = dev; - if (unlikely(idev->cnf.disable_ipv6)) { + if (unlikely(READ_ONCE(idev->cnf.disable_ipv6))) { IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTDISCARDS); kfree_skb_reason(skb, SKB_DROP_REASON_IPV6DISABLED); return 0; |