tcp: miscounts due to tcp_fragment pcount reset
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
Wed, 1 Apr 2009 23:18:20 +0000 (23:18 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 2 Apr 2009 23:31:45 +0000 (16:31 -0700)
commit9eb9362e569062e2f841b7a023e5fcde10ed63b4
tree06dc2aa031ca9cd604ece8a9fd5c5bc8502b2257
parent797108d134a91afca9fa59c572336b279bc66afb
tcp: miscounts due to tcp_fragment pcount reset

It seems that trivial reset of pcount to one was not sufficient
in tcp_retransmit_skb. Multiple counters experience a positive
miscount when skb's pcount gets lowered without the necessary
adjustments (depending on skb's sacked bits which exactly), at
worst a packets_out miscount can crash at RTO if the write queue
is empty!

Triggering this requires mss change, so bidir tcp or mtu probe or
like.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Reported-by: Markus Trippelsdorf <markus@trippelsdorf.de>
Tested-by: Uwe Bugla <uwe.bugla@gmx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_output.c