aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKyle McMartin <kyle@mcmartin.ca>2008-12-08 00:15:51 -0500
committerKyle McMartin <kyle@mcmartin.ca>2009-01-05 14:11:05 -0500
commit5fbf6635a951a75870be9874580c55da538fb025 (patch)
tree6332d1058f2cdeabce2764947eb61a7d06ff0531
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>
-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,
182#endif 182#endif
183 : "=r" (sum), "=r" (saddr), "=r" (daddr), "=r" (len) 183 : "=r" (sum), "=r" (saddr), "=r" (daddr), "=r" (len)
184 : "0" (sum), "1" (saddr), "2" (daddr), "3" (len), "r" (proto) 184 : "0" (sum), "1" (saddr), "2" (daddr), "3" (len), "r" (proto)
185 : "r19", "r20", "r21", "r22"); 185 : "r19", "r20", "r21", "r22", "memory");
186 return csum_fold(sum); 186 return csum_fold(sum);
187} 187}
188 188