diff --git a/include/asm-x86/system_32.h b/include/asm-x86/system_32.h index 8b15bd3057c9b3c4c5ce844e35638396048ab46e..e7e5d426fef58c2b6892fea59c341528d827afaf 100644 --- a/include/asm-x86/system_32.h +++ b/include/asm-x86/system_32.h @@ -274,7 +274,11 @@ static inline unsigned long get_limit(unsigned long segment) #ifdef CONFIG_SMP #define smp_mb() mb() -#define smp_rmb() rmb() +#ifdef CONFIG_X86_PPRO_FENCE +# define smp_rmb() rmb() +#else +# define smp_rmb() barrier() +#endif #ifdef CONFIG_X86_OOSTORE # define smp_wmb() wmb() #else diff --git a/include/asm-x86/system_64.h b/include/asm-x86/system_64.h index eff730b1192682ca85875e909dda13bb1f7e49d9..5022aecc333d7bfe6b24037b3927f15e745e4d7a 100644 --- a/include/asm-x86/system_64.h +++ b/include/asm-x86/system_64.h @@ -141,8 +141,8 @@ static inline void write_cr8(unsigned long val) #ifdef CONFIG_SMP #define smp_mb() mb() -#define smp_rmb() rmb() -#define smp_wmb() wmb() +#define smp_rmb() barrier() +#define smp_wmb() barrier() #define smp_read_barrier_depends() do {} while(0) #else #define smp_mb() barrier()