diff --git a/include/asm-x86/system_32.h b/include/asm-x86/system_32.h index 8b15bd3057c9..e7e5d426fef5 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 eff730b11926..5022aecc333d 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()