Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -1106,7 +1106,7 @@ static bool tcp_check_dsack(struct sock *sk, const struct sk_buff *ack_skb,
|
||||
}
|
||||
|
||||
/* D-SACK for already forgotten data... Do dumb counting. */
|
||||
if (dup_sack && tp->undo_marker && tp->undo_retrans &&
|
||||
if (dup_sack && tp->undo_marker && tp->undo_retrans > 0 &&
|
||||
!after(end_seq_0, prior_snd_una) &&
|
||||
after(end_seq_0, tp->undo_marker))
|
||||
tp->undo_retrans--;
|
||||
@@ -1187,7 +1187,7 @@ static u8 tcp_sacktag_one(struct sock *sk,
|
||||
|
||||
/* Account D-SACK for retransmitted packet. */
|
||||
if (dup_sack && (sacked & TCPCB_RETRANS)) {
|
||||
if (tp->undo_marker && tp->undo_retrans &&
|
||||
if (tp->undo_marker && tp->undo_retrans > 0 &&
|
||||
after(end_seq, tp->undo_marker))
|
||||
tp->undo_retrans--;
|
||||
if (sacked & TCPCB_SACKED_ACKED)
|
||||
@@ -1893,7 +1893,7 @@ static void tcp_clear_retrans_partial(struct tcp_sock *tp)
|
||||
tp->lost_out = 0;
|
||||
|
||||
tp->undo_marker = 0;
|
||||
tp->undo_retrans = 0;
|
||||
tp->undo_retrans = -1;
|
||||
}
|
||||
|
||||
void tcp_clear_retrans(struct tcp_sock *tp)
|
||||
@@ -2664,7 +2664,7 @@ static void tcp_enter_recovery(struct sock *sk, bool ece_ack)
|
||||
|
||||
tp->prior_ssthresh = 0;
|
||||
tp->undo_marker = tp->snd_una;
|
||||
tp->undo_retrans = tp->retrans_out;
|
||||
tp->undo_retrans = tp->retrans_out ? : -1;
|
||||
|
||||
if (inet_csk(sk)->icsk_ca_state < TCP_CA_CWR) {
|
||||
if (!ece_ack)
|
||||
|
||||
Reference in New Issue
Block a user