From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753250AbeEURRC (ORCPT ); Mon, 21 May 2018 13:17:02 -0400 Received: from esa5.hgst.iphmx.com ([216.71.153.144]:8470 "EHLO esa5.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752928AbeEURQy (ORCPT ); Mon, 21 May 2018 13:16:54 -0400 X-IronPort-AV: E=Sophos;i="5.49,426,1520870400"; d="scan'208";a="78841220" From: Bart Van Assche To: Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Christoph Hellwig , Bart Van Assche , Catalin Marinas , Will Deacon , Russell King Subject: [PATCH v12 1/2] ARM: cmpxchg64: Only define cmpxchg64() if not using the Thumb instruction set Date: Mon, 21 May 2018 10:16:51 -0700 Message-Id: <20180521171652.3021-2-bart.vanassche@wdc.com> X-Mailer: git-send-email 2.16.3 In-Reply-To: <20180521171652.3021-1-bart.vanassche@wdc.com> References: <20180521171652.3021-1-bart.vanassche@wdc.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Since the implementation of cmpxchg64() uses instructions that are not Thumb instructions, only define cmpxchg64() if not building in Thumb mode. This patch allows the next patch in this series to check for cmpxchg64() support using #if defined(cmpxchg64). Signed-off-by: Bart Van Assche Cc: Catalin Marinas Cc: Will Deacon Cc: Russell King --- arch/arm/include/asm/cmpxchg.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/include/asm/cmpxchg.h b/arch/arm/include/asm/cmpxchg.h index 8b701f8e175c..41ab99bc04ca 100644 --- a/arch/arm/include/asm/cmpxchg.h +++ b/arch/arm/include/asm/cmpxchg.h @@ -141,7 +141,9 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size sizeof(*(ptr))); \ }) +#ifndef CONFIG_THUMB2_KERNEL #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) +#endif /* CONFIG_THUMB2_KERNEL */ #include @@ -241,6 +243,7 @@ static inline unsigned long __cmpxchg_local(volatile void *ptr, sizeof(*(ptr))); \ }) +#ifndef CONFIG_THUMB2_KERNEL static inline unsigned long long __cmpxchg64(unsigned long long *ptr, unsigned long long old, unsigned long long new) @@ -273,6 +276,7 @@ static inline unsigned long long __cmpxchg64(unsigned long long *ptr, }) #define cmpxchg64_local(ptr, o, n) cmpxchg64_relaxed((ptr), (o), (n)) +#endif /* CONFIG_THUMB2_KERNEL */ #endif /* __LINUX_ARM_ARCH__ >= 6 */ -- 2.16.3