diff options
author | Kyle McMartin <kyle@mcmartin.ca> | 2008-12-08 05:15:51 +0000 |
---|---|---|
committer | Kyle McMartin <kyle@mcmartin.ca> | 2009-01-05 19:11:05 +0000 |
commit | 5fbf6635a951a75870be9874580c55da538fb025 (patch) | |
tree | 6332d1058f2cdeabce2764947eb61a7d06ff0531 /arch/parisc/include/asm/checksum.h | |
parent | 6525ee55bbfd35bf3aff8c59562d6a3d8559a4f0 (diff) | |
download | blackbird-op-linux-5fbf6635a951a75870be9874580c55da538fb025.tar.gz blackbird-op-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.h | 2 |
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); } |