aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/net/core/net_namespace.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2025-06-04 09:39:28 +0000
committerJakub Kicinski <kuba@kernel.org>2025-06-05 08:02:26 -0700
commit535caaca921c653b1f9838fbd5c4e9494cafc3d9 (patch)
tree492e601eeeec5d1a5b7ead08f628b709c49e6009 /net/core/net_namespace.c
parentselftests: drv-net: tso: make bkg() wait for socat to quit (diff)
downloadwireguard-linux-535caaca921c653b1f9838fbd5c4e9494cafc3d9.tar.xz
wireguard-linux-535caaca921c653b1f9838fbd5c4e9494cafc3d9.zip
net: annotate data-races around cleanup_net_task
from_cleanup_net() reads cleanup_net_task locklessly. Add READ_ONCE()/WRITE_ONCE() annotations to avoid a potential KCSAN warning, even if the race is harmless. Fixes: 0734d7c3d93c ("net: expedite synchronize_net() for cleanup_net()") Signed-off-by: Eric Dumazet <edumazet@google.com> Reviewed-by: Jason Xing <kerneljasonxing@gmail.com> Link: https://patch.msgid.link/20250604093928.1323333-1-edumazet@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to '')
-rw-r--r--net/core/net_namespace.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index 42ee7fce3d95..ae54f26709ca 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -654,7 +654,7 @@ static void cleanup_net(struct work_struct *work)
struct net *net, *tmp, *last;
LIST_HEAD(net_exit_list);
- cleanup_net_task = current;
+ WRITE_ONCE(cleanup_net_task, current);
/* Atomically snapshot the list of namespaces to cleanup */
net_kill_list = llist_del_all(&cleanup_list);
@@ -704,7 +704,7 @@ static void cleanup_net(struct work_struct *work)
put_user_ns(net->user_ns);
net_passive_dec(net);
}
- cleanup_net_task = NULL;
+ WRITE_ONCE(cleanup_net_task, NULL);
}
/**