aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorYue Haibing <yuehaibing@huawei.com>2025-09-01 20:37:25 +0800
committerJakub Kicinski <kuba@kernel.org>2025-09-02 17:01:06 -0700
commit3a5f55500f3e93cf4d62351c753452279b088b4b (patch)
treebcc03494a6c173b6ced6900536dea1f0649c030d
parentMerge branch 'vxlan-fix-npds-when-using-nexthop-objects' (diff)
downloadwireguard-linux-3a5f55500f3e93cf4d62351c753452279b088b4b.tar.xz
wireguard-linux-3a5f55500f3e93cf4d62351c753452279b088b4b.zip
ipv6: annotate data-races around devconf->rpl_seg_enabled
devconf->rpl_seg_enabled can be changed concurrently from /proc/sys/net/ipv6/conf, annotate lockless reads on it. Signed-off-by: Yue Haibing <yuehaibing@huawei.com> Link: https://patch.msgid.link/20250901123726.1972881-2-yuehaibing@huawei.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--net/ipv6/exthdrs.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/net/ipv6/exthdrs.c b/net/ipv6/exthdrs.c
index d1ef9644f826..a23eb8734e15 100644
--- a/net/ipv6/exthdrs.c
+++ b/net/ipv6/exthdrs.c
@@ -494,10 +494,8 @@ static int ipv6_rpl_srh_rcv(struct sk_buff *skb)
idev = __in6_dev_get(skb->dev);
- accept_rpl_seg = net->ipv6.devconf_all->rpl_seg_enabled;
- if (accept_rpl_seg > idev->cnf.rpl_seg_enabled)
- accept_rpl_seg = idev->cnf.rpl_seg_enabled;
-
+ accept_rpl_seg = min(READ_ONCE(net->ipv6.devconf_all->rpl_seg_enabled),
+ READ_ONCE(idev->cnf.rpl_seg_enabled));
if (!accept_rpl_seg) {
kfree_skb(skb);
return -1;