diff options
-rw-r--r-- | net/ipv4/tcp_input.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 194e880af51e..e806839acdd9 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -1286,7 +1286,8 @@ void tcp_enter_frto(struct sock *sk) | |||
1286 | } | 1286 | } |
1287 | tcp_sync_left_out(tp); | 1287 | tcp_sync_left_out(tp); |
1288 | 1288 | ||
1289 | tcp_set_ca_state(sk, TCP_CA_Open); | 1289 | tcp_set_ca_state(sk, TCP_CA_Disorder); |
1290 | tp->high_seq = tp->snd_nxt; | ||
1290 | tp->frto_highmark = tp->snd_nxt; | 1291 | tp->frto_highmark = tp->snd_nxt; |
1291 | tp->frto_counter = 1; | 1292 | tp->frto_counter = 1; |
1292 | } | 1293 | } |
@@ -2014,8 +2015,7 @@ tcp_fastretrans_alert(struct sock *sk, u32 prior_snd_una, | |||
2014 | /* E. Check state exit conditions. State can be terminated | 2015 | /* E. Check state exit conditions. State can be terminated |
2015 | * when high_seq is ACKed. */ | 2016 | * when high_seq is ACKed. */ |
2016 | if (icsk->icsk_ca_state == TCP_CA_Open) { | 2017 | if (icsk->icsk_ca_state == TCP_CA_Open) { |
2017 | if (!sysctl_tcp_frto) | 2018 | BUG_TRAP(tp->retrans_out == 0); |
2018 | BUG_TRAP(tp->retrans_out == 0); | ||
2019 | tp->retrans_stamp = 0; | 2019 | tp->retrans_stamp = 0; |
2020 | } else if (!before(tp->snd_una, tp->high_seq)) { | 2020 | } else if (!before(tp->snd_una, tp->high_seq)) { |
2021 | switch (icsk->icsk_ca_state) { | 2021 | switch (icsk->icsk_ca_state) { |