From: Daniel Borkmann <dan...@iogearbox.net> Date: Tue, 16 Oct 2018 21:31:35 +0200
> Eric reported that syzkaller triggered a splat in tcp_cleanup_ulp() > where assertion sock_owned_by_me() failed. This happened through > inet_csk_prepare_forced_close() first releasing the socket lock, > then calling into tcp_done(newsk) which is called after the > inet_csk_prepare_forced_close() and therefore without the socket > lock held. The sock_owned_by_me() assertion can generally be > removed as the only place where tcp_cleanup_ulp() is called from > now is out of inet_csk_destroy_sock() -> sk->sk_prot->destroy() > where socket is in dead state and unreachable. Therefore, add a > comment why the check is not needed instead. > > Fixes: 8b9088f806e1 ("tcp, ulp: enforce sock_owned_by_me upon ulp init and > cleanup") > Reported-by: Eric Dumazet <eduma...@google.com> > Signed-off-by: Daniel Borkmann <dan...@iogearbox.net> Applied.