[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <72981EBCFD196144B7C6999B9FC34A9A494C6DA8A9@SHEXMB-01.global.atheros.com>
Date: Wed, 2 Dec 2009 10:24:14 +0800
From: Jie Yang <Jie.Yang@...eros.com>
To: Ben Hutchings <ben@...adent.org.uk>
CC: "558426@...s.debian.org" <558426@...s.debian.org>,
netdev <netdev@...r.kernel.org>
Subject: RE: TSOv6 broken in atl1e
On Tuesday, December 01, 2009 11:20 AM
Ben Hutchings <ben@...adent.org.uk> wrote:
>
> I received a bug report <http://bugs.debian.org/558426> that
> shows atl1e corrupting IPv6 packets. I have reproduced this
> on an Eee PC 901 and found that it is linked to TSO. The
> most obvious thing wrong with the driver code is that it
> calculates the super-packet length incorrectly.
> However, fixing that:
>
> --- a/drivers/net/atl1e/atl1e_main.c
> +++ b/drivers/net/atl1e/atl1e_main.c
> @@ -1667,6 +1667,7 @@ static int atl1e_tso_csum(struct
> atl1e_adapter *adapter,
>
> if (offload_type & SKB_GSO_TCPV6) {
> real_len = (((unsigned char
> *)ipv6_hdr(skb) - skb->data)
> + + sizeof(struct ipv6hdr)
> +
> ntohs(ipv6_hdr(skb)->payload_len));
> if (real_len < skb->len)
> pskb_trim(skb, real_len);
> --- END ---
>
> does not solve the problem. Presumably this function is not
> constructing correct DMA descriptors for TSOv6.
>
> Please fix this, or I will submit a patch to remove this
> feature from the driver.
>
ou, there is hareware limit to support TSOv6, just disable it.
Best wishes
jie
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists