From 239c95449ba443aa37df9cc1dff6a3db92cf4cd4 Mon Sep 17 00:00:00 2001 From: Balazs Gerofi Date: Fri, 10 May 2019 08:41:57 +0900 Subject: [PATCH] x86: add SMP barriers Change-Id: I7fb36bd3d26fa272697db7c92495ce5fba34aeba --- arch/x86_64/kernel/include/arch/cpu.h | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/arch/x86_64/kernel/include/arch/cpu.h b/arch/x86_64/kernel/include/arch/cpu.h index 1debb1fd..8eec92a0 100644 --- a/arch/x86_64/kernel/include/arch/cpu.h +++ b/arch/x86_64/kernel/include/arch/cpu.h @@ -13,18 +13,16 @@ #ifndef ARCH_CPU_H #define ARCH_CPU_H +#define mb() asm volatile("mfence":::"memory") +#define rmb() asm volatile("lfence":::"memory") +#define wmb() asm volatile("sfence" ::: "memory") + +#define smp_mb() mb() +#define smp_rmb() rmb() +#define smp_wmb() barrier() + #define arch_barrier() asm volatile("" : : : "memory") -static inline void rmb(void) -{ - arch_barrier(); -} - -static inline void wmb(void) -{ - arch_barrier(); -} - static inline unsigned long read_tsc(void) { unsigned int low, high;