From: Paolo Bonzini Date: Sat, 10 Sep 2011 19:26:19 +0000 (-0700) Subject: cmm: let per-arch files provide cmm_smp_* barriers X-Git-Tag: v0.6.5~29 X-Git-Url: http://git.liburcu.org/?p=userspace-rcu.git;a=commitdiff_plain;h=0bd48ad389868e7b98f14fb88f9b4a81ff93b6d0 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 --- 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()