tcp: fix a possible lockdep splat in tcp_done()
authorEric Dumazet <edumazet@google.com>
Mon, 14 Oct 2019 13:47:57 +0000 (06:47 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 16 Oct 2019 03:13:33 +0000 (20:13 -0700)
commitcab209e571a9375f7dc6db69a6c40d2d98e57e3b
tree0a02520a515cd2b22e5fe2e0f2b178b28cb8e31f
parentc9b96eb6da2a4eadf1d82d27e503ce0cd2ca43fd
tcp: fix a possible lockdep splat in tcp_done()

syzbot found that if __inet_inherit_port() returns an error,
we call tcp_done() after inet_csk_prepare_forced_close(),
meaning the socket lock is no longer held.

We might fix this in a different way in net-next, but
for 5.4 it seems safer to relax the lockdep check.

Fixes: d983ea6f16b8 ("tcp: add rcu protection around tp->fastopen_rsk")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp.c