aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_input.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2018-07-02 21:26:50 -0400
committerDavid S. Miller <davem@davemloft.net>2018-07-02 21:29:26 -0400
commit5cd3da4ba2397ef07226ca2aa5094ed21ff8198f (patch)
treecaa3c5968df02c296e9644a98c00e759d011b44c /net/ipv4/tcp_input.c
parentf6779e4e53b6177c319f05b61a5c447137d0ab70 (diff)
parentd0fbad0aec1df29717fab736eb24c8a49cf2c70b (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.c13
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