diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index cd60eeec780..e2e8fec1586 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -2774,9 +2774,11 @@ enter_recovery: KASSERT((tp->t_dupacks == 2 && tp->snd_limited == 0) || (sent == maxseg + 1 && - tp->t_flags & TF_SENTFIN), - ("%s: sent too much", - __func__)); + tp->t_flags & TF_SENTFIN) || + (sent < 2 * maxseg && + tp->t_flags & TF_NODELAY), + ("%s: sent too much: %u>%u", + __func__, sent, maxseg)); tp->snd_limited = 2; } else if (sent > 0) ++tp->snd_limited;