diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index 178455148852..c10a94c4b8b1 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -1102,8 +1102,6 @@ tcp_input(m, off0) if (tp->sack_enable) { /* Delete stale (cumulatively acked) SACK holes */ tcp_del_sackholes(tp, th); - tp->rcv_laststart = th->th_seq; /* last recv'd segment*/ - tp->rcv_lastend = th->th_seq + tlen; } /* @@ -2297,8 +2295,11 @@ tcp_input(m, off0) thflags = tcp_reass(tp, th, &tlen, m); tp->t_flags |= TF_ACKNOW; } - if (tp->sack_enable) - tcp_update_sack_list(tp); + if (tp->sack_enable) { + tp->rcv_laststart = th->th_seq; /* last recv'd segment*/ + tp->rcv_lastend = th->th_seq + tlen; + tcp_update_sack_list(tp); + } /* * Note the amount of data that peer has sent into * our window, in order to estimate the sender's diff --git a/sys/netinet/tcp_reass.c b/sys/netinet/tcp_reass.c index 178455148852..c10a94c4b8b1 100644 --- a/sys/netinet/tcp_reass.c +++ b/sys/netinet/tcp_reass.c @@ -1102,8 +1102,6 @@ tcp_input(m, off0) if (tp->sack_enable) { /* Delete stale (cumulatively acked) SACK holes */ tcp_del_sackholes(tp, th); - tp->rcv_laststart = th->th_seq; /* last recv'd segment*/ - tp->rcv_lastend = th->th_seq + tlen; } /* @@ -2297,8 +2295,11 @@ tcp_input(m, off0) thflags = tcp_reass(tp, th, &tlen, m); tp->t_flags |= TF_ACKNOW; } - if (tp->sack_enable) - tcp_update_sack_list(tp); + if (tp->sack_enable) { + tp->rcv_laststart = th->th_seq; /* last recv'd segment*/ + tp->rcv_lastend = th->th_seq + tlen; + tcp_update_sack_list(tp); + } /* * Note the amount of data that peer has sent into * our window, in order to estimate the sender's