diff --git a/net/socket.c b/net/socket.c index bf943e6d47fe8372c89de1200c205f89dcc69eda..553045441a2cddddf612e0bc57a9c31d0b7d13de 100644 --- a/net/socket.c +++ b/net/socket.c @@ -1630,7 +1630,7 @@ int __sys_listen(int fd, int backlog) sock = sockfd_lookup_light(fd, &err, &fput_needed); if (sock) { - somaxconn = sock_net(sock->sk)->core.sysctl_somaxconn; + somaxconn = READ_ONCE(sock_net(sock->sk)->core.sysctl_somaxconn); if ((unsigned int)backlog > somaxconn) backlog = somaxconn;