[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <157393863283F442885425D2C4542856489E7CA8@nasanexd02f.na.qualcomm.com>
Date: Sun, 24 Mar 2013 04:21:27 +0000
From: "Huang, Xiong" <xiong@....qualcomm.com>
To: Hannes Frederic Sowa <hannes@...essinduktion.org>
CC: Sven Hartge <sven@...nhartge.de>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: RE: Atheros Communications Inc. AR8121/AR8113/AR8114 Gigabit or
Fast Ethernet (rev b0) 1.0.0.7 md5/sha1 corrupted using NFS and samba
(updated) Version 2
I know that from some version of chips, there is a DMA bug that can't be fixed by software, and this bug could be detected by checking Sequence number, and do MAC reset.
Besides, the chip wrongly indicate rx-checksum for IP-fragment packet, I checked windows code, it seems a little bit different with linux code:
if (((pkt_flags & RRS_IS_IPV4) && ((pkt_flags & RRS_IS_TCP) || (pkt_flags & RRS_IS_UDP))) {
if (pkt_flags & RRS_IS_802_3)
head_len += 8;
iph = (struct iphdr *) (packet + head_len);
if ((iph->frag_off != 0 || (pkt_flags & RRS_IS_IP_FRAG)) && !(pkt_flags & RRS_IS_IP_DF))
goto hw_xsum;
}
if (!(err_flags & (RRS_ERR_IP_CSUM | RRS_ERR_L4_CSUM))) {
skb->ip_summed = CHECKSUM_UNNECESSARY;
return;
}
Thanks
Xiong
> -----Original Message-----
> From: Hannes Frederic Sowa [mailto:hannes@...essinduktion.org]
> Sent: Sunday, March 24, 2013 11:41 AM
> To: Huang, Xiong
> Cc: Sven Hartge; netdev@...r.kernel.org
> Subject: Re: Atheros Communications Inc. AR8121/AR8113/AR8114 Gigabit or
> Fast Ethernet (rev b0) 1.0.0.7 md5/sha1 corrupted using NFS and samba
> (updated) Version 2
>
> On Sun, Mar 24, 2013 at 03:27:55AM +0000, Huang, Xiong wrote:
> > Could you point me where the patch is ?
> > I checked windows driver, it doesn't disable checksum offload in RX
> direction.
>
>
> The patch is here: <http://article.gmane.org/gmane.linux.network/263116>
>
> It does not disable checksum offloading but rather suppress the update of
> the ip_summed field. This forces the kernel to recheck the checksums and
> discard the packet. Otherwise it would be seen as a valid one and could
> corrupt data streams.
>
> Thanks,
>
> Hannes
Powered by blists - more mailing lists