Re: TCP-MD5 checksum failure on x86_64 SMP

David Miller
2010-05-16T07:37:10Z

From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Fri, 07 May 2010 23:18:57 +0200

> [PATCH] net: Introduce sk_route_nocaps
>
> TCP-MD5 sessions have intermittent failures, when route cache is
> invalidated. ip_queue_xmit() has to find a new route, calls
> sk_setup_caps(sk, &rt->u.dst), destroying the
>
> sk->sk_route_caps &= ~NETIF_F_GSO_MASK
>
> that MD5 desperately try to make all over its way (from
> tcp_transmit_skb() for example)
>
> So we send few bad packets, and everything is fine when
> tcp_transmit_skb() is called again for this socket.
>
> Since ip_queue_xmit() is at a lower level than TCP-MD5, I chose to use a
> socket field, sk_route_nocaps, containing bits to mask on sk_route_caps.
>
> Reported-by: Bhaskar Dutta <bhaskie@gmail.com>
> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>

Since the connection does recover eventually, I'm stuffing this into
net-next-2.6 into net-2.6

After some time in net-next-2.6, we can submit it to -stable.