Anyway, there is a pretty silly (and bad) bug in 1.3.36. In
net/ipv4/tcp.c, around line 1818, you'll find a line that looks
something like
seglen -= copy;
In _fact_, if you look a bit closer, you'll actually see _two_ of the
above lines close to each other. Now, if you remove one of them, the
kernel networking will work a lot better.
I'm including a patch here just to make it doubly obvious. The patch
has been cut-and-pasted and then edited a bit, so I won't promise you it
actually applies, but this one is actually easier to do by hand anyway..
Linus
----------
diff -u --recursive --new-file v1.3.36/linux/net/ipv4/tcp.c linux/net/ipv4/tcp.c
--- v1.3.36/linux/net/ipv4/tcp.c Mon Oct 23 18:02:23 1995
+++ linux/net/ipv4/tcp.c Tue Oct 24 15:23:06 1995
@@ -1816,7 +1816,6 @@
from += copy;
copied += copy;
len -= copy;
- seglen -= copy;
sk->write_seq += copy;
seglen -= copy;
}
----------