summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@home.transmeta.com>2002-10-18 00:40:02 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-10-18 00:40:02 -0700
commit2cd6563262f305f6745e2ae2e3e52277cbcdef0f (patch)
treef65e478cd2b7abc1cc29783a3ac5c387e94e05ca
parent891c9d56f56230d12ff73f7899604a019f67e8d9 (diff)
Make x86 UP "set_mb()" use a lighter barrier than doing a full
locked "xchg". It only needs a compiler barrier on UP.
-rw-r--r--include/asm-i386/system.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/asm-i386/system.h b/include/asm-i386/system.h
index d6b04c0fed09..9bdecec2a229 100644
--- a/include/asm-i386/system.h
+++ b/include/asm-i386/system.h
@@ -296,13 +296,14 @@ static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
#define smp_mb() mb()
#define smp_rmb() rmb()
#define smp_wmb() wmb()
+#define set_mb(var, value) do { xchg(&var, value); } while (0)
#else
#define smp_mb() barrier()
#define smp_rmb() barrier()
#define smp_wmb() barrier()
+#define set_mb(var, value) do { var = value; barrier(); } while (0)
#endif
-#define set_mb(var, value) do { xchg(&var, value); } while (0)
#define set_wmb(var, value) do { var = value; wmb(); } while (0)
/* interrupt control.. */