[3.13.y.z extended stable] Patch "tcp: fixing TLP's FIN recovery" has been added to staging queue

Kamal Mostafa kamal at canonical.com
Fri Oct 31 20:53:25 UTC 2014

This is a note to let you know that I have just added a patch titled

    tcp: fixing TLP's FIN recovery

to the linux-3.13.y-queue branch of the 3.13.y.z extended stable tree 
which can be found at:


This patch is scheduled to be released in version

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.13.y.z tree, see



>From 3d552f5f615d286aa2b35630317553d3b093f5e1 Mon Sep 17 00:00:00 2001
From: Per Hurtig <per.hurtig at kau.se>
Date: Thu, 12 Jun 2014 17:08:32 +0200
Subject: tcp: fixing TLP's FIN recovery

[ Upstream commit bef1909ee3ed1ca39231b260a8d3b4544ecd0c8f ]

Fix to a problem observed when losing a FIN segment that does not
contain data.  In such situations, TLP is unable to recover from
*any* tail loss and instead adds at least PTO ms to the
retransmission process, i.e., RTO = RTO + PTO.

Signed-off-by: Per Hurtig <per.hurtig at kau.se>
Signed-off-by: Eric Dumazet <edumazet at google.com>
Acked-by: Nandita Dukkipati <nanditad at google.com>
Acked-by: Neal Cardwell <ncardwell at google.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
Signed-off-by: Kamal Mostafa <kamal at canonical.com>
 net/ipv4/tcp_output.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index f587e1c..395f909 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -2048,9 +2048,7 @@ void tcp_send_loss_probe(struct sock *sk)
 	if (WARN_ON(!skb || !tcp_skb_pcount(skb)))
 		goto rearm_timer;

-	/* Probe with zero data doesn't trigger fast recovery. */
-	if (skb->len > 0)
-		err = __tcp_retransmit_skb(sk, skb);
+	err = __tcp_retransmit_skb(sk, skb);

 	/* Record snd_nxt for loss detection. */
 	if (likely(!err))

More information about the kernel-team mailing list