summaryrefslogtreecommitdiffstats
path: root/arch/parisc/include/asm/checksum.h
diff options
context:
space:
mode:
authorKyle McMartin <kyle@mcmartin.ca>2008-12-08 06:15:51 +0100
committerKyle McMartin <kyle@mcmartin.ca>2009-01-05 20:11:05 +0100
commit5fbf6635a951a75870be9874580c55da538fb025 (patch)
tree6332d1058f2cdeabce2764947eb61a7d06ff0531 /arch/parisc/include/asm/checksum.h
parentparisc: quiet palo not-found message from "which" (diff)
downloadlinux-5fbf6635a951a75870be9874580c55da538fb025.tar.xz
linux-5fbf6635a951a75870be9874580c55da538fb025.zip
parisc: fix ipv6 checksum
ipv6 recently started exhibiting the same symptoms as ipv4 was, add a memory clobber around inline checksum assembly that fribbles memory to ensure gcc doesn't erroneously cache across it. Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
Diffstat (limited to 'arch/parisc/include/asm/checksum.h')
-rw-r--r--arch/parisc/include/asm/checksum.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/parisc/include/asm/checksum.h b/arch/parisc/include/asm/checksum.h
index e9639ccc3fce..c84b2fcb18a9 100644
--- a/arch/parisc/include/asm/checksum.h
+++ b/arch/parisc/include/asm/checksum.h
@@ -182,7 +182,7 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
#endif
: "=r" (sum), "=r" (saddr), "=r" (daddr), "=r" (len)
: "0" (sum), "1" (saddr), "2" (daddr), "3" (len), "r" (proto)
- : "r19", "r20", "r21", "r22");
+ : "r19", "r20", "r21", "r22", "memory");
return csum_fold(sum);
}