linux-mips
[Top] [All Lists]

Re: MIPS checksum bug

To: Bryan Phillippe <u1@terran.org>
Subject: Re: MIPS checksum bug
From: "Maciej W. Rozycki" <macro@linux-mips.org>
Date: Thu, 18 Sep 2008 11:06:17 +0100 (BST)
Cc: linux-mips@linux-mips.org
In-reply-to: <4A385D69-6A36-46B5-84C2-32D4C60C3543@terran.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <072748C6-07A9-4167-A8A5-80D0F7D9C784@darkforest.org> <B45397E7-EBE4-497B-9055-42B604A909AA@terran.org> <Pine.LNX.4.55.0809171104290.17103@cliff.in.clinika.pl> <4A385D69-6A36-46B5-84C2-32D4C60C3543@terran.org>
Sender: linux-mips-bounce@linux-mips.org
On Wed, 17 Sep 2008, Bryan Phillippe wrote:

> FWIW... your patch (below) seems to actually fix the checksum problem  
> in my testing.  What was your concern about it?

 For unaligned buffers the passed checksum is added before the result has
been byte-swapped.  That is probably not seen too often as the network
stack normally aligns IP packets, but it does not make the change correct.  

 One possibility with no performance impact to the common aligned case
would be to byte-swap the passed checksum too, but currently I am somewhat
puzzled about the API of the function; specifically as to whether the
checksums passed to and from it are expected to be folded or not.  The use
of a 32-bit type does not imply it is valid for the upper 16 bits to be
non-zero in the values passed.

  Maciej

<Prev in Thread] Current Thread [Next in Thread>