tcp: Stop non-TSO packets morphing into TSO
authorHerbert Xu <herbert@gondor.apana.org.au>
Sun, 28 Jun 2009 18:03:30 +0000 (18:03 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 30 Jun 2009 02:41:39 +0000 (19:41 -0700)
commit8e5b9dda99cc86bdbd822935fcc37c5808e271b3
tree216ce989fdac1d8ecd33698e8fae46fe0d4bb616
parent9c0346bd0891eb009f5cd08b868ff41c65804dbe
tcp: Stop non-TSO packets morphing into TSO

If a socket starts out on a non-TSO route, and then switches to
a TSO route, then the tail on the tx queue can morph into a TSO
packet, causing mischief because the rest of the stack does not
expect a partially linear TSO packet.

This patch fixes this by ensuring that skb->ip_summed is set to
CHECKSUM_PARTIAL before declaring a packet as TSO.

Reported-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_output.c