aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/include/asm/bitops.h
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-10-18 15:36:02 +0900
committerPaul Mundt <lethal@linux-sh.org>2009-10-18 15:36:02 +0900
commit1c8db713e21c82e14d0d1be14a09dae224472396 (patch)
treeb8582d42e6f2a0fdcb0fe40ee319c90efc8664a8 /arch/sh/include/asm/bitops.h
parentsh: Disable SCIF2 on the SH-X3 proto CPU. (diff)
downloadlinux-dev-1c8db713e21c82e14d0d1be14a09dae224472396.tar.xz
linux-dev-1c8db713e21c82e14d0d1be14a09dae224472396.zip
sh: Fix up smp_mb__xxx() memory barriers for SH-4A SMP.
In the past these were simply wrapping to barrier() which was sufficient on SH SMP platforms predating SH-4A. Unfortunately due to ll/sc semantics an explicit synco is needed in these cases, which is sorted for us by just switching these over to smp_mb(). smp_mb() also has the benefit of being wrapped to barrier() in the UP and non-SH4A cases, so old behaviour is maintained for those parts. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/include/asm/bitops.h')
-rw-r--r--arch/sh/include/asm/bitops.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/sh/include/asm/bitops.h b/arch/sh/include/asm/bitops.h
index ebe595b7ab1f..98511e4d28cb 100644
--- a/arch/sh/include/asm/bitops.h
+++ b/arch/sh/include/asm/bitops.h
@@ -26,8 +26,8 @@
/*
* clear_bit() doesn't provide any barrier for the compiler.
*/
-#define smp_mb__before_clear_bit() barrier()
-#define smp_mb__after_clear_bit() barrier()
+#define smp_mb__before_clear_bit() smp_mb()
+#define smp_mb__after_clear_bit() smp_mb()
#ifdef CONFIG_SUPERH32
static inline unsigned long ffz(unsigned long word)