diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
index 84552826530df0cd0c0fea6e74ab977fd057fc1d..4763c26ae480a1ca06b6aeb478c9713d6f2dd660 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -1710,7 +1710,7 @@ static int unix_accept(struct socket *sock, struct socket *newsock,
 		goto out;
 
 	arg->err = -EINVAL;
-	if (sk->sk_state != TCP_LISTEN)
+	if (READ_ONCE(sk->sk_state) != TCP_LISTEN)
 		goto out;
 
 	/* If socket state is TCP_LISTEN it cannot change (for now...),