linux/arch/sh/lib
Ollie Wild 24ab54cb49 sh: Fix TCP payload csum bug in csum_partial_copy_generic().
There's a bug in the Hitachi SuperH csum_partial_copy_generic()
implementation.  If the supplied length is 1 (and several alignment
conditions are met), the function immediately branches to label 4.
However, the assembly at label 4 expects the length to be stored in
register r2.  Since this has not occurred, subsequent behavior is
undefined.

This can cause bad payload checksums in TCP connections.

I've fixed the problem by initializing register r2 prior to the branch
instruction.

Signed-off-by: Ollie Wild <aaw@rincewind.tv>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-09-27 14:46:24 +09:00
..
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
checksum.S sh: Fix TCP payload csum bug in csum_partial_copy_generic(). 2006-09-27 14:46:24 +09:00
delay.c [PATCH] smp_processor_id() cleanup 2005-06-21 18:46:13 -07:00
div64-generic.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
div64.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
memchr.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
memcpy-sh4.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
memcpy.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
memmove.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
memset.S sh: Fix a sign extension bug in memset(). 2006-09-27 14:13:14 +09:00
strcasecmp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
strlen.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
udivdi3.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00