[ARM] 3292/1: Fix memory corruption in asm-arm/checksum.h: ip_fast_csum()
authorRichard Purdie <rpurdie@rpsys.net>
Wed, 1 Feb 2006 19:26:00 +0000 (19:26 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 1 Feb 2006 19:26:00 +0000 (19:26 +0000)
Patch from Richard Purdie

ip_fast_csum() accesses memory via a pointer (iph) within an
asm function. To prevent memory corruption when the function is
inlined, it needs "memory" on the clobber list.

This fixes ip checksum errors reported by a Zaurus user.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
include/asm-arm/checksum.h

index d4256d5..747bdd3 100644 (file)
@@ -77,7 +77,7 @@ ip_fast_csum(unsigned char * iph, unsigned int ihl)
        mov     %0, %0, lsr #16"
        : "=r" (sum), "=r" (iph), "=r" (ihl), "=r" (tmp1)
        : "1" (iph), "2" (ihl)
-       : "cc");
+       : "cc", "memory");
        return sum;
 }