[664] in linux-net channel archive
Re: Checksum problem fixed
daemon@ATHENA.MIT.EDU (Alan Cox)
Thu Jul 13 20:21:23 1995
From: iialan@iifeak.swan.ac.uk (Alan Cox)
To: gpg109@rsphy1.anu.edu.au (Paul Gortmaker)
Date: Thu, 13 Jul 1995 15:50:09 +0100 (BST)
Cc: iialan@www.linux.org.uk, ftom@netcom.com, torvalds@cs.Helsinki.FI,
linux-net@vger.rutgers.edu
In-Reply-To: <9507131451.AA25757@rsphy9.anu.edu.au> from "Paul Gortmaker" at Jul 14, 95 00:51:20 am
> I found the checksum problem, and it was not Tom's asm code
> afterall (sorry Tom). The fix is obvious once you know the problem.
> It was breaking on packets that were padded up to the 60 byte minimum
> because we were copying and csuming the padding as well.
Ah. I fixed a different bug for UDP packets with trailing padding at the
UDP layer. I missed the obvious one.
> Now that eth_copy_and_sum() works, I will work on converting shared
> memory 8390 cards to use it. The only snag will be if the packet
> is wrapped around the Rx ring boundary (and thus in 2 chunks) then
> we won't be able to use eth_copy_and_sum(). In that case, the csum
> will be done later by the upper layers as it is now.
Benchmark it if you do. Its a win on a 386 lance as the bus mastering
DMA means the packet isn't cached.
Alan