diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-20 12:01:59 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-20 12:01:59 -0700 |
commit | 02d6112cd7d75bf30685ee4b2e9dc0291b4d3133 (patch) | |
tree | b1715624dadae286cac16deb5a634a33f4a46aa6 /include/asm-mips/barrier.h | |
parent | 0b1937ac0ef1541c0ea44e6f81c33d2f59803957 (diff) | |
parent | 941091024ef0f2f7e09eb81201d293ac18833cc8 (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.h | 9 |
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 */ |