diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c index 3b38610958ee4b..dab723fea0ccc8 100644 --- a/net/ipv4/inet_connection_sock.c +++ b/net/ipv4/inet_connection_sock.c @@ -1269,6 +1269,8 @@ int inet_csk_listen_start(struct sock *sk) reqsk_queue_alloc(&icsk->icsk_accept_queue); + /* closed sockets can have non zero sk_shutdown */ + WRITE_ONCE(sk->sk_shutdown, 0); sk->sk_ack_backlog = 0; inet_csk_delack_init(sk);