Messages in this thread Patch in this message | | | From | Russell King <> | Subject | TCP SYNs broken in 2.3.41 | Date | Sun, 30 Jan 2000 16:36:32 +0000 (GMT) |
| |
Hi,
I've just been investigating why TCP SYNs from an ARM box running 2.3.41 seem to be corrupted. Some bytes in the packet seem to be offset by 3, others by 2.
Only TCP SYNs are affected by this. The reason appears to be caused by a skb_reserve in tcp_output.c:tcp_connect() causing the skbuff data pointer to become unaligned. The following patch clears this up, allow the TCP header to be aligned again:
--- linux/net/ipv4/tcp_output.c Sat Jan 29 23:45:46 2000 +++ linux-ebsa285/net/ipv4/tcp_output.c Sun Jan 30 16:25:42 2000 @@ -1005,7 +1005,7 @@ struct tcp_opt *tp = &(sk->tp_pinfo.af_tcp); /* Reserve space for headers. */ - skb_reserve(buff, MAX_TCP_HEADER + 15); + skb_reserve(buff, MAX_TCP_HEADER); /* We'll fix this up when we get a response from the other end. * See tcp_input.c:tcp_rcv_state_process case TCP_SYN_SENT. Why is this '+ 15' here anyway? Can someone shed some enlightenment on it? Also, can this go into the kernel for 2.3.42 please? _____ |_____| ------------------------------------------------- ---+---+- | | Russell King rmk@arm.linux.org.uk --- --- | | | | http://www.arm.linux.org.uk/~rmk/aboutme.html / / | | +-+-+ --- -+- / | THE developer of ARM Linux |+| /|\ / | | | --- | +-+-+ ------------------------------------------------- /\\\ | - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |