summaryrefslogtreecommitdiff
path: root/arch/parisc
diff options
context:
space:
mode:
authorKyle McMartin <kyle@mcmartin.ca>2008-12-08 05:15:51 +0000
committerKyle McMartin <kyle@mcmartin.ca>2009-01-05 19:11:05 +0000
commit5fbf6635a951a75870be9874580c55da538fb025 (patch)
tree6332d1058f2cdeabce2764947eb61a7d06ff0531 /arch/parisc
parent6525ee55bbfd35bf3aff8c59562d6a3d8559a4f0 (diff)
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')
-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);
}