| Date | Tue, 30 Mar 2010 15:42:58 -0700 | From | Greg KH <> | Subject | [144/156] tcp: Fix tcp_mark_head_lost() with packets == 0 |
| |
2.6.33-stable review patch. If anyone has any objections, please let us know.
------------------
From: Lennart Schulte <lennart.schulte@nets.rwth-aachen.de>
[ Upstream commit 6830c25b7d08fbbd922959425193791bc42079f2 ]
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 <lennart.schulte@nets.rwth-aachen.de> Signed-off-by: Arnd Hannemann <hannemann@nets.rwth-aachen.de> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- net/ipv4/tcp_input.c | 3 +++ 1 file changed, 3 insertions(+)
--- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -2499,6 +2499,9 @@ static void tcp_mark_head_lost(struct so 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;
|