summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2020-08-21 10:46:10 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2020-08-21 10:46:10 -0400
commit5c2040764b77c5495651bb397fae6f4258c2855c (patch)
tree597abc274622073a3f7092815cbd0fe2e2115242
parent3169aa4d8939a8a41cae23b41ae56f540ff5cdb9 (diff)
downloadlongterm-queue-5.2-5c2040764b77c5495651bb397fae6f4258c2855c.tar.gz
tcp: use v5.4-stable version for appropriate unused_1 bit count
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--queue/tcp-allow-at-most-one-TLP-probe-per-flight.patch32
1 files changed, 16 insertions, 16 deletions
diff --git a/queue/tcp-allow-at-most-one-TLP-probe-per-flight.patch b/queue/tcp-allow-at-most-one-TLP-probe-per-flight.patch
index e99881e7..03210eb8 100644
--- a/queue/tcp-allow-at-most-one-TLP-probe-per-flight.patch
+++ b/queue/tcp-allow-at-most-one-TLP-probe-per-flight.patch
@@ -1,9 +1,9 @@
-From 76be93fc0702322179bb0ea87295d820ee46ad14 Mon Sep 17 00:00:00 2001
+From cd6b986353a252e53fc406cb8c237f4b4ee09d3c Mon Sep 17 00:00:00 2001
From: Yuchung Cheng <ycheng@google.com>
Date: Thu, 23 Jul 2020 12:00:06 -0700
Subject: [PATCH] tcp: allow at most one TLP probe per flight
-commit 76be93fc0702322179bb0ea87295d820ee46ad14 upstream.
+[ Upstream commit 76be93fc0702322179bb0ea87295d820ee46ad14 ]
Previously TLP may send multiple probes of new data in one
flight. This happens when the sender is cwnd limited. After the
@@ -27,19 +27,19 @@ Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+[PG: use v5.4-stable version for "unused_1" bit count."]
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
-index 9aac824c523c..a1bbaa1c1a3a 100644
+index 3eb7f9a27364..908e1fa07586 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
-@@ -220,7 +220,9 @@ struct tcp_sock {
+@@ -221,6 +221,8 @@ struct tcp_sock {
} rack;
u16 advmss; /* Advertised MSS */
u8 compressed_ack;
-- u8 dup_ack_counter;
-+ u8 dup_ack_counter:2,
-+ tlp_retrans:1, /* TLP is a retransmission */
-+ unused:5;
++ u8 tlp_retrans:1, /* TLP is a retransmission */
++ unused_1:7;
u32 chrono_start; /* Start time in jiffies of a TCP chrono */
u32 chrono_stat[3]; /* Time in jiffies for chrono_stat stats */
u8 chrono_type:2, /* current chronograph type */
@@ -50,13 +50,13 @@ index 9aac824c523c..a1bbaa1c1a3a 100644
- u32 tlp_high_seq; /* snd_nxt at the time of TLP retransmit. */
+ u32 tlp_high_seq; /* snd_nxt at the time of TLP */
- u32 tcp_tx_delay; /* delay (in usec) added to TX packets */
u64 tcp_wstamp_ns; /* departure time for next sent data packet */
+ u64 tcp_clock_cache; /* cache last tcp_clock_ns() (see tcp_mstamp_refresh()) */
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index 9615e72656d1..518f04355fbf 100644
+index 1986560889a0..65a899f65fa2 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
-@@ -3488,10 +3488,8 @@ static void tcp_replace_ts_recent(struct tcp_sock *tp, u32 seq)
+@@ -3501,10 +3501,8 @@ static void tcp_replace_ts_recent(struct tcp_sock *tp, u32 seq)
}
}
@@ -69,7 +69,7 @@ index 9615e72656d1..518f04355fbf 100644
*/
static void tcp_process_tlp_ack(struct sock *sk, u32 ack, int flag)
{
-@@ -3500,7 +3498,10 @@ static void tcp_process_tlp_ack(struct sock *sk, u32 ack, int flag)
+@@ -3513,7 +3511,10 @@ static void tcp_process_tlp_ack(struct sock *sk, u32 ack, int flag)
if (before(ack, tp->tlp_high_seq))
return;
@@ -82,10 +82,10 @@ index 9615e72656d1..518f04355fbf 100644
tp->tlp_high_seq = 0;
} else if (after(ack, tp->tlp_high_seq)) {
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
-index 5f5b2f0b0e60..0bc05d68cd74 100644
+index 604fe19ef189..807dc290fb7d 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
-@@ -2624,6 +2624,11 @@ void tcp_send_loss_probe(struct sock *sk)
+@@ -2535,6 +2535,11 @@ void tcp_send_loss_probe(struct sock *sk)
int pcount;
int mss = tcp_current_mss(sk);
@@ -97,7 +97,7 @@ index 5f5b2f0b0e60..0bc05d68cd74 100644
skb = tcp_send_head(sk);
if (skb && tcp_snd_wnd_test(tp, skb, mss)) {
pcount = tp->packets_out;
-@@ -2641,10 +2646,6 @@ void tcp_send_loss_probe(struct sock *sk)
+@@ -2552,10 +2557,6 @@ void tcp_send_loss_probe(struct sock *sk)
return;
}
@@ -108,7 +108,7 @@ index 5f5b2f0b0e60..0bc05d68cd74 100644
if (skb_still_in_host_queue(sk, skb))
goto rearm_timer;
-@@ -2666,10 +2667,12 @@ void tcp_send_loss_probe(struct sock *sk)
+@@ -2577,10 +2578,12 @@ void tcp_send_loss_probe(struct sock *sk)
if (__tcp_retransmit_skb(sk, skb, 1))
goto rearm_timer;