diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-10-18 15:36:02 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-10-18 15:36:02 +0900 |
commit | 1c8db713e21c82e14d0d1be14a09dae224472396 (patch) | |
tree | b8582d42e6f2a0fdcb0fe40ee319c90efc8664a8 /arch/sh/include/asm/bitops.h | |
parent | 15dfdddbf0c2be680d5d2fe2bbe3aad3dba3cf0e (diff) |
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.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/sh/include/asm/bitops.h b/arch/sh/include/asm/bitops.h index ebe595b7ab1..98511e4d28c 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) |