|
@@ -3484,7 +3484,8 @@ static bool tcp_process_frto(struct sock *sk, int flag)
|
|
|
((tp->frto_counter >= 2) && (flag & FLAG_RETRANS_DATA_ACKED)))
|
|
|
tp->undo_marker = 0;
|
|
|
|
|
|
- if (!before(tp->snd_una, tp->frto_highmark)) {
|
|
|
+ if (!before(tp->snd_una, tp->frto_highmark) ||
|
|
|
+ !tcp_packets_in_flight(tp)) {
|
|
|
tcp_enter_frto_loss(sk, (tp->frto_counter == 1 ? 2 : 3), flag);
|
|
|
return true;
|
|
|
}
|