]> bbs.cooldavid.org Git - net-next-2.6.git/commit - net/ipv4/tcp_output.c
[PATCH] tcp: fix TSO sizing bugs
authorDavid S. Miller <davem@davemloft.net>
Fri, 5 Aug 2005 02:52:01 +0000 (19:52 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 5 Aug 2005 04:43:14 +0000 (21:43 -0700)
commit846998ae87a80b0fd45b4cf5cf001a159d746f27
treea81d0f6d2b1f1817d557bd5f5611c81ff9026b51
parent0c3dba1534569734ba353afdf3f11def497ff2ac
[PATCH] tcp: fix TSO sizing bugs

MSS changes can be lost since we preemptively initialize the tso_segs count
for an SKB before we %100 commit to sending it out.

So, by the time we send it out, the tso_size information can be stale due
to PMTU events.  This mucks up all of the logic in our send engine, and can
even result in the BUG() triggering in tcp_tso_should_defer().

Another problem we have is that we're storing the tp->mss_cache, not the
SACK block normalized MSS, as the tso_size.  That's wrong too.

Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
net/ipv4/tcp_output.c