diff --git a/net/socket.c b/net/socket.c index 7d84c289e5ae7b096393cee1dca2ce29937efb94..78fdcbe5eaa55d79119f739d0db68296c380ee15 100644 --- a/net/socket.c +++ b/net/socket.c @@ -1672,7 +1672,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;