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

From: Sven Hartge <[email-masked]>
Date: Sun, 24 Mar 2013 02:35:11 +0100

Hannes Frederic Sowa <[email-masked]> wrote:
> On Sun, Mar 24, 2013 at 01:36:33AM +0100, Sven Hartge wrote:
>> Hannes Frederic Sowa <[email-masked]> wrote:
>> > On Sat, Mar 23, 2013 at 12:54:25AM -0400, rebelyouth wrote:
>> >> I applied your patch on my the kernel 3.7.9 and look like the patch do 
>> >> what you said before :
>> >> 
>> >> "This does not solve the real problem, which I have not yet understood 
>> >> (wrong packets will be discarded now and will be hopefully resend). "
>> >> 
>> >> There are errors on the RX side of the server and the speed is 5~10% 
>> >> less but the files are ok in nfsv4 , SFTP/FTP and samba.
>> >> 
>> >> Maybe the Atheros drivers for windows had a patch for the checksum 
>> >> already in the drivers and the chipset  have some hardware bug, but for 
>> >> me your patch is already an achievement and I really thank you for your 
>> >> time and consideration.
>> 
>> > The upstream driver (which is a tarball I found with google
>> > AR81Family-linux-v1.0.1.14.tar.gz) has this function ifdefed out. I have
>> > a couple of more things I want to test as soon as I have access to the
>> > hardware again.  If I don't find a better solution I will submit a patch
>> > which disables rx checksumming as a whole for inclusion to net-next.
>> 
>> I remember having the some problem with an atl1e chip on my Asus
>> PQ5-Pro. It would corrupt ethernet frames, resulting in dropped
>> connections when using SSH (bailing out with a HMAC crypto error) etc.
>> 
>> After some conversations with an Atheros engineer (Jie Yang
>> <[email-masked]>) I got the following patch, which I applied for
>> some time to my local Debian kernel packages. It fixed the problem for
>> me, until I switched the board to a newer one.
>> 
>> As far as I understand, this patch rips out any checksumming function
>> and just advertises the chip as not using and providing any.

> Yes, my patch does the same, just jumpes over the body of the function
> and returns without updating the ip_summed field.

>> My mail archive indicates, this bug has been fixed in the upstream atl1e
>> driver since version l1c-linux-v1.0.0.11-test.tar.gz.

> Yes, they ifdefed out the body of the function.

> What we have found so far:

> It seems packet content overwrites itself. We have not yet found a
> pattern but it seems that some 16 bytes from the payload overwrite
> other parts of the packet, even mulitple times (but the same 16 bytes
> though).

> I also checked freebsd. Hardware rx checksumming is disabled there and
> we did not see any checksum errors in the stack. So I assume they
> don't have this problem.

I understand from my conversation with Jie Yang, that he reproduced the
problem at Atheros and then decided to disable checksumming in the
driver. My guess would be that is some kind of confirmation this feature
is broken in that hardware and should not be used.

Grüße,
Sven.

-- 
Sigmentation fault. Core dumped.