diff options
author | David S. Miller <davem@davemloft.net> | 2018-07-02 21:26:50 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-07-02 21:29:26 -0400 |
commit | 5cd3da4ba2397ef07226ca2aa5094ed21ff8198f (patch) | |
tree | caa3c5968df02c296e9644a98c00e759d011b44c /net/ipv4/tcp_input.c | |
parent | f6779e4e53b6177c319f05b61a5c447137d0ab70 (diff) | |
parent | d0fbad0aec1df29717fab736eb24c8a49cf2c70b (diff) |
Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net
Simple overlapping changes in stmmac driver.
Adjust skb_gro_flush_final_remcsum function signature to make GRO list
changes in net-next, as per Stephen Rothwell's example merge
resolution.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_input.c')
-rw-r--r-- | net/ipv4/tcp_input.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index a4731995e899..814ea43dd12f 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -266,7 +266,7 @@ static void __tcp_ecn_check_ce(struct sock *sk, const struct sk_buff *skb) | |||
266 | * it is probably a retransmit. | 266 | * it is probably a retransmit. |
267 | */ | 267 | */ |
268 | if (tp->ecn_flags & TCP_ECN_SEEN) | 268 | if (tp->ecn_flags & TCP_ECN_SEEN) |
269 | tcp_enter_quickack_mode(sk, 1); | 269 | tcp_enter_quickack_mode(sk, 2); |
270 | break; | 270 | break; |
271 | case INET_ECN_CE: | 271 | case INET_ECN_CE: |
272 | if (tcp_ca_needs_ecn(sk)) | 272 | if (tcp_ca_needs_ecn(sk)) |
@@ -274,7 +274,7 @@ static void __tcp_ecn_check_ce(struct sock *sk, const struct sk_buff *skb) | |||
274 | 274 | ||
275 | if (!(tp->ecn_flags & TCP_ECN_DEMAND_CWR)) { | 275 | if (!(tp->ecn_flags & TCP_ECN_DEMAND_CWR)) { |
276 | /* Better not delay acks, sender can have a very low cwnd */ | 276 | /* Better not delay acks, sender can have a very low cwnd */ |
277 | tcp_enter_quickack_mode(sk, 1); | 277 | tcp_enter_quickack_mode(sk, 2); |
278 | tp->ecn_flags |= TCP_ECN_DEMAND_CWR; | 278 | tp->ecn_flags |= TCP_ECN_DEMAND_CWR; |
279 | } | 279 | } |
280 | tp->ecn_flags |= TCP_ECN_SEEN; | 280 | tp->ecn_flags |= TCP_ECN_SEEN; |
@@ -3185,6 +3185,15 @@ static int tcp_clean_rtx_queue(struct sock *sk, u32 prior_fack, | |||
3185 | 3185 | ||
3186 | if (tcp_is_reno(tp)) { | 3186 | if (tcp_is_reno(tp)) { |
3187 | tcp_remove_reno_sacks(sk, pkts_acked); | 3187 | tcp_remove_reno_sacks(sk, pkts_acked); |
3188 | |||
3189 | /* If any of the cumulatively ACKed segments was | ||
3190 | * retransmitted, non-SACK case cannot confirm that | ||
3191 | * progress was due to original transmission due to | ||
3192 | * lack of TCPCB_SACKED_ACKED bits even if some of | ||
3193 | * the packets may have been never retransmitted. | ||
3194 | */ | ||
3195 | if (flag & FLAG_RETRANS_DATA_ACKED) | ||
3196 | flag &= ~FLAG_ORIG_SACK_ACKED; | ||
3188 | } else { | 3197 | } else { |
3189 | int delta; | 3198 | int delta; |
3190 | 3199 | ||