Page MenuHomeFreeBSD

D43792.diff
No OneTemporary

D43792.diff

diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c
--- a/sys/netinet/tcp_subr.c
+++ b/sys/netinet/tcp_subr.c
@@ -2383,10 +2383,9 @@
#endif
INP_WLOCK_ASSERT(inp);
+ MPASS(!callout_active(&tp->t_callout));
MPASS(TAILQ_EMPTY(&tp->snd_holes));
- tcp_timer_stop(tp);
-
/* free the reassembly queue, if any */
tcp_reass_flush(tp);
@@ -2522,6 +2521,7 @@
tcp_fastopen_decrement_counter(tp->t_tfo_pending);
tp->t_tfo_pending = NULL;
}
+ tcp_timer_stop(tp);
if (tp->t_fb->tfb_tcp_timer_stop_all != NULL)
tp->t_fb->tfb_tcp_timer_stop_all(tp);
in_pcbdrop(inp);
diff --git a/sys/netinet/tcp_timer.c b/sys/netinet/tcp_timer.c
--- a/sys/netinet/tcp_timer.c
+++ b/sys/netinet/tcp_timer.c
@@ -907,6 +907,7 @@
#endif
INP_WLOCK_ASSERT(inp);
+ MPASS(tp->t_state > TCPS_CLOSED);
if (delta > 0) {
what = TT_STARTING;

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 16, 9:12 AM (21 h, 32 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14656380
Default Alt Text
D43792.diff (848 B)

Event Timeline