]> git.baikalelectronics.ru Git - kernel.git/commit
tcp: fix TSO FACK loss marking in tcp_mark_head_lost
authorYuchung Cheng <ycheng@google.com>
Fri, 24 Sep 2010 13:22:06 +0000 (13:22 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Sep 2010 21:55:57 +0000 (14:55 -0700)
commit600a2d1311b0c73ece60fbb3eda46372f6c7ceaa
treeb387ee28cbb0c577943e87ddc7d87c3d7c65b99c
parentcbd2da9e54ce514bef30cc062b91bf578f4cba46
tcp: fix TSO FACK loss marking in tcp_mark_head_lost

When TCP uses FACK algorithm to mark lost packets in
tcp_mark_head_lost(), if the number of packets in the (TSO) skb is
greater than the number of packets that should be marked lost, TCP
incorrectly exits the loop and marks no packets lost in the skb. This
underestimates tp->lost_out and affects the recovery/retransmission.
This patch fargments the skb and marks the correct amount of packets
lost.

Signed-off-by: Yuchung Cheng <ycheng@google.com>
Acked-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_input.c