diff options
author | np <np@FreeBSD.org> | 2011-10-12 19:52:23 +0000 |
---|---|---|
committer | np <np@FreeBSD.org> | 2011-10-12 19:52:23 +0000 |
commit | af7a62a68c141363f984b52274326a5200d99e06 (patch) | |
tree | d3c83a01bed630acbe9d26ec5ee91792d8e042eb /sys/netinet | |
parent | e999aa7f371bd497d251ccb9d4b2a2e47b228751 (diff) | |
download | FreeBSD-src-af7a62a68c141363f984b52274326a5200d99e06.zip FreeBSD-src-af7a62a68c141363f984b52274326a5200d99e06.tar.gz |
Make sure the inp wasn't dropped when rexmt let go of the inp and
pcbinfo locks.
Reviewed by: andre@
MFC after: 7 days
Diffstat (limited to 'sys/netinet')
-rw-r--r-- | sys/netinet/tcp_timer.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/netinet/tcp_timer.c b/sys/netinet/tcp_timer.c index 73984c7..1651d69 100644 --- a/sys/netinet/tcp_timer.c +++ b/sys/netinet/tcp_timer.c @@ -495,6 +495,13 @@ tcp_timer_rexmt(void * xtp) CURVNET_RESTORE(); return; } + if (inp->inp_flags & INP_DROPPED) { + INP_WUNLOCK(inp); + INP_INFO_WUNLOCK(&V_tcbinfo); + CURVNET_RESTORE(); + return; + } + tp = tcp_drop(tp, tp->t_softerror ? tp->t_softerror : ETIMEDOUT); headlocked = 1; |