On 10/16/2018 04:17 PM, Eric Dumazet wrote: > On 10/12/2018 05:45 PM, Daniel Borkmann wrote: [...] >> diff --git a/net/ipv4/tcp_ulp.c b/net/ipv4/tcp_ulp.c >> index a5995bb..34e9635 100644 >> --- a/net/ipv4/tcp_ulp.c >> +++ b/net/ipv4/tcp_ulp.c >> @@ -123,6 +123,8 @@ void tcp_cleanup_ulp(struct sock *sk) >> { >> struct inet_connection_sock *icsk = inet_csk(sk); >> >> + sock_owned_by_me(sk); >> + >> if (!icsk->icsk_ulp_ops) >> return; > > Ahem... inet_csk_prepare_forced_close() releases the socket lock, > and tcp_done(newsk); is called after inet_csk_prepare_forced_close()
Right you are, will fix it up. Thanks!