aboutsummaryrefslogtreecommitdiff
path: root/include/asm-mips/barrier.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-20 12:01:59 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-20 12:01:59 -0700
commit02d6112cd7d75bf30685ee4b2e9dc0291b4d3133 (patch)
treeb1715624dadae286cac16deb5a634a33f4a46aa6 /include/asm-mips/barrier.h
parent0b1937ac0ef1541c0ea44e6f81c33d2f59803957 (diff)
parent941091024ef0f2f7e09eb81201d293ac18833cc8 (diff)
Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: [MIPS] User stack pointer randomisation [MIPS] Remove unused include/asm-mips/gfx.h [MIPS] Remove unused include/asm-mips/ds1216.h [MIPS] Workaround for RM7000 WAIT instruction aka erratum 38 [MIPS] Make support for weakly ordered LL/SC a config option. [MIPS] Disable UserLocal runtime detection on platforms which never have it. [MIPS] Disable MT runtime detection on platforms which never support MT.
Diffstat (limited to 'include/asm-mips/barrier.h')
-rw-r--r--include/asm-mips/barrier.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/asm-mips/barrier.h b/include/asm-mips/barrier.h
index ed82631b001..9d8cfbb5e79 100644
--- a/include/asm-mips/barrier.h
+++ b/include/asm-mips/barrier.h
@@ -121,6 +121,11 @@
#else
#define __WEAK_ORDERING_MB " \n"
#endif
+#if defined(CONFIG_WEAK_REORDERING_BEYOND_LLSC) && defined(CONFIG_SMP)
+#define __WEAK_LLSC_MB " sync \n"
+#else
+#define __WEAK_LLSC_MB " \n"
+#endif
#define smp_mb() __asm__ __volatile__(__WEAK_ORDERING_MB : : :"memory")
#define smp_rmb() __asm__ __volatile__(__WEAK_ORDERING_MB : : :"memory")
@@ -129,4 +134,8 @@
#define set_mb(var, value) \
do { var = value; smp_mb(); } while (0)
+#define smp_llsc_mb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory")
+#define smp_llsc_rmb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory")
+#define smp_llsc_wmb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory")
+
#endif /* __ASM_BARRIER_H */