summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorMatt Johnston <matt@codeconstruct.com.au>2025-04-10 11:53:19 +0800
committerJakub Kicinski <kuba@kernel.org>2025-04-11 18:42:34 -0700
commit52024cd6ec71a6ca934d0cc12452bd8d49850679 (patch)
treeb99a70289ee313c936eb9bb9af37defa2cfdca02 /net
parentf3fdd4fba16c74697d8bc730b82fb7c1eff7fab3 (diff)
net: mctp: Set SOCK_RCU_FREE
Bind lookup runs under RCU, so ensure that a socket doesn't go away in the middle of a lookup. Fixes: 833ef3b91de6 ("mctp: Populate socket implementation") Signed-off-by: Matt Johnston <matt@codeconstruct.com.au> Link: https://patch.msgid.link/20250410-mctp-rcu-sock-v1-1-872de9fdc877@codeconstruct.com.au Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net')
-rw-r--r--net/mctp/af_mctp.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/mctp/af_mctp.c b/net/mctp/af_mctp.c
index dd895617defd..9b12ca97f412 100644
--- a/net/mctp/af_mctp.c
+++ b/net/mctp/af_mctp.c
@@ -630,6 +630,9 @@ static int mctp_sk_hash(struct sock *sk)
{
struct net *net = sock_net(sk);
+ /* Bind lookup runs under RCU, remain live during that. */
+ sock_set_flag(sk, SOCK_RCU_FREE);
+
mutex_lock(&net->mctp.bind_lock);
sk_add_node_rcu(sk, &net->mctp.binds);
mutex_unlock(&net->mctp.bind_lock);