From patchwork Tue May 29 18:07:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Rutland X-Patchwork-Id: 137200 Delivered-To: patch@linaro.org Received: by 2002:a2e:9706:0:0:0:0:0 with SMTP id r6-v6csp4363609lji; Tue, 29 May 2018 11:08:16 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrx3RUnYJ8Jz82NYHyAYWrLA9q9zkyXOv4UCeLAtu3F6zqjhjxu9kLY5m69Vx0GEgXkg/KD X-Received: by 2002:a62:3d54:: with SMTP id k81-v6mr18347457pfa.193.1527617295882; Tue, 29 May 2018 11:08:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527617295; cv=none; d=google.com; s=arc-20160816; b=JZoxVDFYfjlPzS1LZSWGXqPLZw+DTiqbP4UuxIhT2IMLRuyRc9yHOgCy54Fmu1gg+3 ZkWOgix1ZcWhiBt+i/Z7xjEWloH+hheOyOApct4L5LW9jP9jhZKLI2GLgIYvYVyuProR /au4LP08RHuW4VesVcvvHGV0oI1jipdGy0Bx4lTbk8iDajbWCdjWlJZEDEsM2wsvyVZU u3wiHMT2b6D22KnPcN6XvTUeYT5ZTH0szTdEUFDolYn+2onMA2QzRz3yIF2KmF9bM43r YiucIRmkj7F4jBqQnEkWKcTrtcwOu8TTGGM2s3xox6naCc9pvR62rIIAnxQqpKFuMRVF GeyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=TXwjuRaEN0tDvU2+eaPwLY2DnEN1rN8ri562dBBTj/Y=; b=mim0GgiaXp/jax3b9O3O3MebHr04bPwXwBq7QCbY1H76z1eS3dBfnfu7P4KiIBaAAE qLX9Xk/6TzZ1uvEo1f+Mk7H6A8doRcvEdaAET/7k6UPWFuAlOQUgYf2aD4GWgAVoPFLw 4mzIM7Ext0E18FlrOEQ6E5LasFzfinvqGhYc+0jFelyg9PkAU+ry568hMbazkFE0E8Av l//atPNP8Ad+sFocs5E826WcOHl87GwyTsWnu88TqNDWi5lzjloe2S741bD9igjl2NU+ EH0u3WK+PimQaWN7LYCBdZXljJnGOl1pVenFSjERYKGp6c5jQT7rju3G8r/kU6ojNjrf M8Vw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b19-v6si32700472pfh.358.2018.05.29.11.08.15; Tue, 29 May 2018 11:08:15 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965917AbeE2SIM (ORCPT + 30 others); Tue, 29 May 2018 14:08:12 -0400 Received: from foss.arm.com ([217.140.101.70]:45892 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965792AbeE2SIG (ORCPT ); Tue, 29 May 2018 14:08:06 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 50DA715BE; Tue, 29 May 2018 11:08:06 -0700 (PDT) Received: from lakrids.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 436263F557; Tue, 29 May 2018 11:08:05 -0700 (PDT) From: Mark Rutland To: linux-kernel@vger.kernel.org Cc: Mark Rutland , Boqun Feng , Peter Zijlstra , Will Deacon Subject: [PATCH 3/7] atomics: separate basic {cmp,}xchg() Date: Tue, 29 May 2018 19:07:42 +0100 Message-Id: <20180529180746.29684-4-mark.rutland@arm.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180529180746.29684-1-mark.rutland@arm.com> References: <20180529180746.29684-1-mark.rutland@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently the basic {cmp,}xchg() definitions live in the middle of the atomic_t definitions. Let's pull them earlier so that the file has, in order: * __atomic_op_() definitions * {cmp,}xchg() definitions * atomic_t definiitions * atomic64_t definitions * atomic_long_t definitions ... which will make subsequent rework less messy. There should be no functional change as a result of this patch. Signed-off-by: Mark Rutland Cc: Boqun Feng Cc: Peter Zijlstra Cc: Will Deacon --- include/linux/atomic.h | 138 ++++++++++++++++++++++++------------------------- 1 file changed, 69 insertions(+), 69 deletions(-) -- 2.11.0 diff --git a/include/linux/atomic.h b/include/linux/atomic.h index 580d15b10bfd..28c4aa3c1a4c 100644 --- a/include/linux/atomic.h +++ b/include/linux/atomic.h @@ -77,6 +77,75 @@ __ret; \ }) +/* cmpxchg_relaxed */ +#ifndef cmpxchg_relaxed +#define cmpxchg_relaxed cmpxchg +#define cmpxchg_acquire cmpxchg +#define cmpxchg_release cmpxchg + +#else /* cmpxchg_relaxed */ + +#ifndef cmpxchg_acquire +#define cmpxchg_acquire(...) \ + __atomic_op_acquire(cmpxchg, __VA_ARGS__) +#endif + +#ifndef cmpxchg_release +#define cmpxchg_release(...) \ + __atomic_op_release(cmpxchg, __VA_ARGS__) +#endif + +#ifndef cmpxchg +#define cmpxchg(...) \ + __atomic_op_fence(cmpxchg, __VA_ARGS__) +#endif +#endif /* cmpxchg_relaxed */ + +/* cmpxchg64_relaxed */ +#ifndef cmpxchg64_relaxed +#define cmpxchg64_relaxed cmpxchg64 +#define cmpxchg64_acquire cmpxchg64 +#define cmpxchg64_release cmpxchg64 + +#else /* cmpxchg64_relaxed */ + +#ifndef cmpxchg64_acquire +#define cmpxchg64_acquire(...) \ + __atomic_op_acquire(cmpxchg64, __VA_ARGS__) +#endif + +#ifndef cmpxchg64_release +#define cmpxchg64_release(...) \ + __atomic_op_release(cmpxchg64, __VA_ARGS__) +#endif + +#ifndef cmpxchg64 +#define cmpxchg64(...) \ + __atomic_op_fence(cmpxchg64, __VA_ARGS__) +#endif +#endif /* cmpxchg64_relaxed */ + +/* xchg_relaxed */ +#ifndef xchg_relaxed +#define xchg_relaxed xchg +#define xchg_acquire xchg +#define xchg_release xchg + +#else /* xchg_relaxed */ + +#ifndef xchg_acquire +#define xchg_acquire(...) __atomic_op_acquire(xchg, __VA_ARGS__) +#endif + +#ifndef xchg_release +#define xchg_release(...) __atomic_op_release(xchg, __VA_ARGS__) +#endif + +#ifndef xchg +#define xchg(...) __atomic_op_fence(xchg, __VA_ARGS__) +#endif +#endif /* xchg_relaxed */ + /* atomic_add_return_relaxed */ #ifndef atomic_add_return_relaxed #define atomic_add_return_relaxed atomic_add_return @@ -480,75 +549,6 @@ #define atomic_try_cmpxchg_release atomic_try_cmpxchg #endif /* atomic_try_cmpxchg */ -/* cmpxchg_relaxed */ -#ifndef cmpxchg_relaxed -#define cmpxchg_relaxed cmpxchg -#define cmpxchg_acquire cmpxchg -#define cmpxchg_release cmpxchg - -#else /* cmpxchg_relaxed */ - -#ifndef cmpxchg_acquire -#define cmpxchg_acquire(...) \ - __atomic_op_acquire(cmpxchg, __VA_ARGS__) -#endif - -#ifndef cmpxchg_release -#define cmpxchg_release(...) \ - __atomic_op_release(cmpxchg, __VA_ARGS__) -#endif - -#ifndef cmpxchg -#define cmpxchg(...) \ - __atomic_op_fence(cmpxchg, __VA_ARGS__) -#endif -#endif /* cmpxchg_relaxed */ - -/* cmpxchg64_relaxed */ -#ifndef cmpxchg64_relaxed -#define cmpxchg64_relaxed cmpxchg64 -#define cmpxchg64_acquire cmpxchg64 -#define cmpxchg64_release cmpxchg64 - -#else /* cmpxchg64_relaxed */ - -#ifndef cmpxchg64_acquire -#define cmpxchg64_acquire(...) \ - __atomic_op_acquire(cmpxchg64, __VA_ARGS__) -#endif - -#ifndef cmpxchg64_release -#define cmpxchg64_release(...) \ - __atomic_op_release(cmpxchg64, __VA_ARGS__) -#endif - -#ifndef cmpxchg64 -#define cmpxchg64(...) \ - __atomic_op_fence(cmpxchg64, __VA_ARGS__) -#endif -#endif /* cmpxchg64_relaxed */ - -/* xchg_relaxed */ -#ifndef xchg_relaxed -#define xchg_relaxed xchg -#define xchg_acquire xchg -#define xchg_release xchg - -#else /* xchg_relaxed */ - -#ifndef xchg_acquire -#define xchg_acquire(...) __atomic_op_acquire(xchg, __VA_ARGS__) -#endif - -#ifndef xchg_release -#define xchg_release(...) __atomic_op_release(xchg, __VA_ARGS__) -#endif - -#ifndef xchg -#define xchg(...) __atomic_op_fence(xchg, __VA_ARGS__) -#endif -#endif /* xchg_relaxed */ - /** * atomic_fetch_add_unless - add unless the number is already a given value * @v: pointer of type atomic_t