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