From 0bd48ad389868e7b98f14fb88f9b4a81ff93b6d0 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Sat, 10 Sep 2011 12:26:19 -0700 Subject: [PATCH] cmm: let per-arch files provide cmm_smp_* barriers x86 instructions lfence and sfence are rarely needed, thus we want the cmm_smp_rmb/cmm_smp_wmb macros to be simple compiler barriers. So, let the per-arch files override the default definitions in arch/generic.h. Signed-off-by: Paolo Bonzini Signed-off-by: Mathieu Desnoyers --- urcu/arch/generic.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/urcu/arch/generic.h b/urcu/arch/generic.h index 100d3c6..1ea7f59 100644 --- a/urcu/arch/generic.h +++ b/urcu/arch/generic.h @@ -100,22 +100,50 @@ extern "C" { #endif #ifdef CONFIG_RCU_SMP +#ifndef cmm_smp_mb #define cmm_smp_mb() cmm_mb() +#endif +#ifndef cmm_smp_rmb #define cmm_smp_rmb() cmm_rmb() +#endif +#ifndef cmm_smp_wmb #define cmm_smp_wmb() cmm_wmb() +#endif +#ifndef cmm_smp_mc #define cmm_smp_mc() cmm_mc() +#endif +#ifndef cmm_smp_rmc #define cmm_smp_rmc() cmm_rmc() +#endif +#ifndef cmm_smp_wmc #define cmm_smp_wmc() cmm_wmc() +#endif +#ifndef cmm_smp_read_barrier_depends #define cmm_smp_read_barrier_depends() cmm_read_barrier_depends() +#endif #else +#ifndef cmm_smp_mb #define cmm_smp_mb() cmm_barrier() +#endif +#ifndef cmm_smp_rmb #define cmm_smp_rmb() cmm_barrier() +#endif +#ifndef cmm_smp_wmb #define cmm_smp_wmb() cmm_barrier() +#endif +#ifndef cmm_smp_mc #define cmm_smp_mc() cmm_barrier() +#endif +#ifndef cmm_smp_rmc #define cmm_smp_rmc() cmm_barrier() +#endif +#ifndef cmm_smp_wmc #define cmm_smp_wmc() cmm_barrier() +#endif +#ifndef cmm_smp_read_barrier_depends #define cmm_smp_read_barrier_depends() #endif +#endif #ifndef caa_cpu_relax #define caa_cpu_relax() cmm_barrier() -- 2.34.1