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
From: Huang, Xiong <hidden>
Date: 2013-03-24 04:21:50
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@stressinduktion.org] Sent: Sunday, March 24, 2013 11:41 AM To: Huang, Xiong Cc: Sven Hartge; netdev@vger.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:quoted
Could you point me where the patch is ? I checked windows driver, it doesn't disable checksum offload in RXdirection. 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