From: Kuniyuki Iwashima Date: Tue, 4 Jun 2024 16:52:34 +0000 (-0700) Subject: af_unix: Annotate data-race of sk->sk_state in unix_stream_read_skb(). X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=af4c733b6b1aded4dc808fafece7dfe6e9d2ebb3;p=users%2Fdwmw2%2Flinux.git af_unix: Annotate data-race of sk->sk_state in unix_stream_read_skb(). unix_stream_read_skb() is called from sk->sk_data_ready() context where unix_state_lock() is not held. Let's use READ_ONCE() there. Fixes: 77462de14a43 ("af_unix: Add read_sock for stream socket types") Signed-off-by: Kuniyuki Iwashima Signed-off-by: Paolo Abeni --- diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 4ef9c21783a5a..e7b74207aa3bd 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -2659,7 +2659,7 @@ static struct sk_buff *manage_oob(struct sk_buff *skb, struct sock *sk, static int unix_stream_read_skb(struct sock *sk, skb_read_actor_t recv_actor) { - if (unlikely(sk->sk_state != TCP_ESTABLISHED)) + if (unlikely(READ_ONCE(sk->sk_state) != TCP_ESTABLISHED)) return -ENOTCONN; return unix_read_skb(sk, recv_actor);