From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Neal Cardwell <ncardwell@google.com>,
Yuchung Cheng <ycheng@google.com>,
"David S. Miller" <davem@davemloft.net>
Subject: [PATCH 3.10 05/31] tcp: fix FRTO undo on cumulative ACK of SACKed range
Date: Sun, 26 Apr 2015 15:46:25 +0200 [thread overview]
Message-ID: <20150426134209.480209647@linuxfoundation.org> (raw)
In-Reply-To: <20150426134209.255099785@linuxfoundation.org>
3.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Neal Cardwell <ncardwell@google.com>
[ Upstream commit 666b805150efd62f05810ff0db08f44a2370c937 ]
On processing cumulative ACKs, the FRTO code was not checking the
SACKed bit, meaning that there could be a spurious FRTO undo on a
cumulative ACK of a previously SACKed skb.
The FRTO code should only consider a cumulative ACK to indicate that
an original/unretransmitted skb is newly ACKed if the skb was not yet
SACKed.
The effect of the spurious FRTO undo would typically be to make the
connection think that all previously-sent packets were in flight when
they really weren't, leading to a stall and an RTO.
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Fixes: e33099f96d99c ("tcp: implement RFC5682 F-RTO")
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/ipv4/tcp_input.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3076,10 +3076,11 @@ static int tcp_clean_rtx_queue(struct so
if (seq_rtt < 0) {
seq_rtt = ca_seq_rtt;
}
- if (!(sacked & TCPCB_SACKED_ACKED))
+ if (!(sacked & TCPCB_SACKED_ACKED)) {
reord = min(pkts_acked, reord);
- if (!after(scb->end_seq, tp->high_seq))
- flag |= FLAG_ORIG_SACK_ACKED;
+ if (!after(scb->end_seq, tp->high_seq))
+ flag |= FLAG_ORIG_SACK_ACKED;
+ }
}
if (sacked & TCPCB_SACKED_ACKED)
next prev parent reply other threads:[~2015-04-26 13:59 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-26 13:46 [PATCH 3.10 00/31] 3.10.76-stable review Greg Kroah-Hartman
2015-04-26 13:48 ` Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 01/31] conditionally define U32_MAX Greg Kroah-Hartman
2015-04-26 13:48 ` Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 02/31] remove extra definitions of U32_MAX Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 03/31] tcp: prevent fetching dst twice in early demux code Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 04/31] ipv6: Dont reduce hop limit for an interface Greg Kroah-Hartman
2015-04-26 13:46 ` Greg Kroah-Hartman [this message]
2015-04-26 13:46 ` [PATCH 3.10 06/31] tcp: tcp_make_synack() should clear skb->tstamp Greg Kroah-Hartman
2015-04-26 13:49 ` Greg Kroah-Hartman
2015-04-27 4:02 ` Willy Tarreau
2015-04-27 4:23 ` Eric Dumazet
2015-04-27 4:45 ` David Miller
2015-04-26 13:46 ` [PATCH 3.10 07/31] 8139cp: Call dev_kfree_skby_any instead of kfree_skb Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 08/31] 8139too: Call dev_kfree_skby_any instead of dev_kfree_skb Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 09/31] r8169: " Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 10/31] bnx2: " Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 11/31] tg3: " Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 12/31] ixgb: " Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 13/31] benet: Call dev_kfree_skby_any instead of kfree_skb Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 14/31] serial: 8250_dw: Fix deadlock in LCR workaround Greg Kroah-Hartman
2015-04-26 13:49 ` Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 15/31] jfs: fix readdir regression Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 16/31] splice: Apply generic position and size checks to each write Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 17/31] mm: Fix NULL pointer dereference in madvise(MADV_WILLNEED) support Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 18/31] Bluetooth: Enable Atheros 0cf3:311e for firmware upload Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 19/31] Bluetooth: Add firmware update for Atheros 0cf3:311f Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 20/31] Bluetooth: btusb: Add IMC Networks (Broadcom based) Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 21/31] Bluetooth: Add support for Intel bootloader devices Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 22/31] Bluetooth: Ignore isochronous endpoints for Intel USB bootloader Greg Kroah-Hartman
2015-04-26 13:49 ` Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 23/31] netfilter: conntrack: disable generic tracking for known protocols Greg Kroah-Hartman
2015-04-26 13:49 ` Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 24/31] KVM: x86: SYSENTER emulation is broken Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 26/31] move d_rcu from overlapping d_child to overlapping d_alias Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 27/31] deal with deadlock in d_walk() Greg Kroah-Hartman
2015-04-27 1:20 ` Ben Hutchings
2015-04-27 7:53 ` Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 28/31] vm: add VM_FAULT_SIGSEGV handling support Greg Kroah-Hartman
2015-04-26 13:49 ` Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 29/31] vm: make stack guard page errors return VM_FAULT_SIGSEGV rather than SIGBUS Greg Kroah-Hartman
2015-04-26 13:49 ` Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 30/31] x86: mm: move mmap_sem unlock from mm_fault_error() to caller Greg Kroah-Hartman
2015-04-26 13:46 ` [PATCH 3.10 31/31] sb_edac: avoid INTERNAL ERROR message in EDAC with unspecified channel Greg Kroah-Hartman
2015-04-26 13:49 ` Greg Kroah-Hartman
2015-04-26 15:15 ` [PATCH 3.10 00/31] 3.10.76-stable review Guenter Roeck
2015-04-26 17:12 ` Greg Kroah-Hartman
2015-04-26 17:14 ` Guenter Roeck
2015-04-26 20:01 ` Guenter Roeck
2015-04-27 17:19 ` Shuah Khan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150426134209.480209647@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=ncardwell@google.com \
--cc=stable@vger.kernel.org \
--cc=ycheng@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.