diff options
author | Yuchung Cheng <ycheng@google.com> | 2015-04-29 11:28:30 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-04-29 17:10:38 -0400 |
commit | 9dac8835440622c2f84591673969d510ce198c11 (patch) | |
tree | 2bd12ba14de9be870cb7d02ad12e2ebd9cc98c6e /net | |
parent | 6e9250f59ef9efb932c84850cd221f22c2a03c4a (diff) | |
download | lwn-9dac8835440622c2f84591673969d510ce198c11.tar.gz lwn-9dac8835440622c2f84591673969d510ce198c11.zip |
tcp: update reordering first before detecting loss
tcp_mark_lost_retrans is not used when FACK is disabled. Since
tcp_update_reordering may disable FACK, it should be called first
before tcp_mark_lost_retrans.
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Nandita Dukkipati <nanditad@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/tcp_input.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 7e6962bcfc30..bc790ea9960f 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -1820,14 +1820,12 @@ advance_sp: for (j = 0; j < used_sacks; j++) tp->recv_sack_cache[i++] = sp[j]; - tcp_mark_lost_retrans(sk); - - tcp_verify_left_out(tp); - if ((state.reord < tp->fackets_out) && ((inet_csk(sk)->icsk_ca_state != TCP_CA_Loss) || tp->undo_marker)) tcp_update_reordering(sk, tp->fackets_out - state.reord, 0); + tcp_mark_lost_retrans(sk); + tcp_verify_left_out(tp); out: #if FASTRETRANS_DEBUG > 0 |