diff options
| author | Linus Torvalds <torvalds@home.transmeta.com> | 2002-10-18 00:40:02 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-10-18 00:40:02 -0700 |
| commit | 2cd6563262f305f6745e2ae2e3e52277cbcdef0f (patch) | |
| tree | f65e478cd2b7abc1cc29783a3ac5c387e94e05ca | |
| parent | 891c9d56f56230d12ff73f7899604a019f67e8d9 (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.h | 3 |
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.. */ |
