ae5de0ff0b
Both csum_partial() and the csum_partial_copy*() family of routines forget to do a final fold on the computed checksum value on sparc64. So do the standard Sparc "add + set condition codes, add carry" sequence, then make sure the high 32-bits of the return value are clear. Based upon some excellent detective work and debugging done by Richard Braun and Samuel Thibault. Signed-off-by: David S. Miller <davem@davemloft.net> |
||
---|---|---|
.. | ||
Makefile | ||
NGbzero.S | ||
NGcopy_from_user.S | ||
NGcopy_to_user.S | ||
NGmemcpy.S | ||
NGpage.S | ||
NGpatch.S | ||
PeeCeeI.c | ||
U1copy_from_user.S | ||
U1copy_to_user.S | ||
U1memcpy.S | ||
U3copy_from_user.S | ||
U3copy_to_user.S | ||
U3memcpy.S | ||
U3patch.S | ||
VISsave.S | ||
atomic.S | ||
bitops.S | ||
bzero.S | ||
checksum.S | ||
clear_page.S | ||
copy_in_user.S | ||
copy_page.S | ||
csum_copy.S | ||
csum_copy_from_user.S | ||
csum_copy_to_user.S | ||
delay.c | ||
iomap.c | ||
ipcsum.S | ||
mcount.S | ||
memcmp.S | ||
memmove.S | ||
memscan.S | ||
rwsem.S | ||
strlen.S | ||
strlen_user.S | ||
strncmp.S | ||
strncpy_from_user.S | ||
user_fixup.c | ||
xor.S |