From: Matt Johnston Date: Thu, 10 Apr 2025 03:53:19 +0000 (+0800) Subject: net: mctp: Set SOCK_RCU_FREE X-Git-Tag: v6.15-rc3~33^2~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=52024cd6ec71a6ca934d0cc12452bd8d49850679;p=thirdparty%2Flinux.git 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 Link: https://patch.msgid.link/20250410-mctp-rcu-sock-v1-1-872de9fdc877@codeconstruct.com.au Signed-off-by: Jakub Kicinski --- diff --git a/net/mctp/af_mctp.c b/net/mctp/af_mctp.c index dd895617defd3..9b12ca97f4128 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);