From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: [PATCH for-4.5 v2 8/8] xen: arm: use more specific barriers for read and write barriers. Date: Thu, 13 Feb 2014 12:38:08 +0000 Message-ID: <1392295088-24219-8-git-send-email-ian.campbell@citrix.com> References: <1392295040.31985.7.camel@kazak.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1392295040.31985.7.camel@kazak.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: julien.grall@linaro.org, tim@xen.org, Ian Campbell , stefano.stabellini@eu.citrix.com List-Id: xen-devel@lists.xenproject.org Note that 32-bit does not provide a load variant of the inner shareable barrier, so that remains a full any-any barrier. Signed-off-by: Ian Campbell Acked-by: Stefano Stabellini Acked-by: Tim Deegan --- xen/include/asm-arm/system.h | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/xen/include/asm-arm/system.h b/xen/include/asm-arm/system.h index 32ed277..7aaaf50 100644 --- a/xen/include/asm-arm/system.h +++ b/xen/include/asm-arm/system.h @@ -17,12 +17,21 @@ #define dmb(scope) asm volatile("dmb " #scope : : : "memory") #define mb() dsb(sy) -#define rmb() dsb(sy) -#define wmb() dsb(sy) +#ifdef CONFIG_ARM_64 +#define rmb() dsb(ld) +#else +#define rmb() dsb(sy) /* 32-bit has no ld variant. */ +#endif +#define wmb() dsb(st) #define smp_mb() dmb(ish) -#define smp_rmb() dmb(ish) -#define smp_wmb() dmb(ish) +#ifdef CONFIG_ARM_64 +#define smp_rmb() dmb(ishld) +#else +#define smp_rmb() dmb(ish) /* 32-bit has no ishld variant. */ +#endif + +#define smp_wmb() dmb(ishst) #define xchg(ptr,x) \ ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) -- 1.7.10.4