From: Lennart Schulte Date: Wed, 17 Mar 2010 02:16:29 +0000 (+0000) Subject: tcp: Fix tcp_mark_head_lost() with packets == 0 X-Git-Tag: v2.6.34-rc3~33^2~33 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6830c25b7d08fbbd922959425193791bc42079f2;p=profile%2Fcommon%2Fkernel-common.git tcp: Fix tcp_mark_head_lost() with packets == 0 A packet is marked as lost in case packets == 0, although nothing should be done. This results in a too early retransmitted packet during recovery in some cases. This small patch fixes this issue by returning immediately. Signed-off-by: Lennart Schulte Signed-off-by: Arnd Hannemann Signed-off-by: David S. Miller --- diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 788851c..c096a42 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -2511,6 +2511,9 @@ static void tcp_mark_head_lost(struct sock *sk, int packets) int err; unsigned int mss; + if (packets == 0) + return; + WARN_ON(packets > tp->packets_out); if (tp->lost_skb_hint) { skb = tp->lost_skb_hint;