From: Mark Rutland <mark.rutland@arm.com>
To: linux-kernel@vger.kernel.org
Cc: akiyks@gmail.com, boqun.feng@gmail.com, corbet@lwn.net,
keescook@chromium.org, linux@armlinux.org.uk,
linux-doc@vger.kernel.org, mark.rutland@arm.com,
mchehab@kernel.org, paulmck@kernel.org, peterz@infradead.org,
rdunlap@infradead.org, sstabellini@kernel.org, will@kernel.org
Subject: [PATCH v2 09/27] locking/atomic: parisc: add preprocessor symbols
Date: Mon, 5 Jun 2023 08:01:06 +0100 [thread overview]
Message-ID: <20230605070124.3741859-10-mark.rutland@arm.com> (raw)
In-Reply-To: <20230605070124.3741859-1-mark.rutland@arm.com>
Some atomics can be implemented in several different ways, e.g.
FULL/ACQUIRE/RELEASE ordered atomics can be implemented in terms of
RELAXED atomics, and ACQUIRE/RELEASE/RELAXED can be implemented in terms
of FULL ordered atomics. Other atomics are optional, and don't exist in
some configurations (e.g. not all architectures implement the 128-bit
cmpxchg ops).
Subsequent patches will require that architectures define a preprocessor
symbol for any atomic (or ordering variant) which is optional. This will
make the fallback ifdeffery more robust, and simplify future changes.
Add the required definitions to arch/parisc.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Paul E. McKenney <paulmck@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Will Deacon <will@kernel.org>
---
arch/parisc/include/asm/atomic.h | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h
index 0b3f64c92e3c0..d4f023887ff87 100644
--- a/arch/parisc/include/asm/atomic.h
+++ b/arch/parisc/include/asm/atomic.h
@@ -118,6 +118,11 @@ static __inline__ int arch_atomic_fetch_##op(int i, atomic_t *v) \
ATOMIC_OPS(add, +=)
ATOMIC_OPS(sub, -=)
+#define arch_atomic_add_return arch_atomic_add_return
+#define arch_atomic_sub_return arch_atomic_sub_return
+#define arch_atomic_fetch_add arch_atomic_fetch_add
+#define arch_atomic_fetch_sub arch_atomic_fetch_sub
+
#undef ATOMIC_OPS
#define ATOMIC_OPS(op, c_op) \
ATOMIC_OP(op, c_op) \
@@ -127,6 +132,10 @@ ATOMIC_OPS(and, &=)
ATOMIC_OPS(or, |=)
ATOMIC_OPS(xor, ^=)
+#define arch_atomic_fetch_and arch_atomic_fetch_and
+#define arch_atomic_fetch_or arch_atomic_fetch_or
+#define arch_atomic_fetch_xor arch_atomic_fetch_xor
+
#undef ATOMIC_OPS
#undef ATOMIC_FETCH_OP
#undef ATOMIC_OP_RETURN
@@ -181,6 +190,11 @@ static __inline__ s64 arch_atomic64_fetch_##op(s64 i, atomic64_t *v) \
ATOMIC64_OPS(add, +=)
ATOMIC64_OPS(sub, -=)
+#define arch_atomic64_add_return arch_atomic64_add_return
+#define arch_atomic64_sub_return arch_atomic64_sub_return
+#define arch_atomic64_fetch_add arch_atomic64_fetch_add
+#define arch_atomic64_fetch_sub arch_atomic64_fetch_sub
+
#undef ATOMIC64_OPS
#define ATOMIC64_OPS(op, c_op) \
ATOMIC64_OP(op, c_op) \
@@ -190,6 +204,10 @@ ATOMIC64_OPS(and, &=)
ATOMIC64_OPS(or, |=)
ATOMIC64_OPS(xor, ^=)
+#define arch_atomic64_fetch_and arch_atomic64_fetch_and
+#define arch_atomic64_fetch_or arch_atomic64_fetch_or
+#define arch_atomic64_fetch_xor arch_atomic64_fetch_xor
+
#undef ATOMIC64_OPS
#undef ATOMIC64_FETCH_OP
#undef ATOMIC64_OP_RETURN
--
2.30.2
next prev parent reply other threads:[~2023-06-05 7:02 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-05 7:00 [PATCH v2 00/27] locking/atomic: restructuring + kerneldoc Mark Rutland
2023-06-05 7:00 ` [PATCH v2 01/27] locking/atomic: arm: fix sync ops Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:00 ` [PATCH v2 02/27] locking/atomic: remove fallback comments Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 03/27] locking/atomic: hexagon: remove redundant arch_atomic_cmpxchg Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 04/27] locking/atomic: make atomic*_{cmp,}xchg optional Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-27 17:07 ` [PATCH v2 04/27] " Guenter Roeck
2023-06-28 11:42 ` Mark Rutland
2023-07-08 13:07 ` Linux regression tracking (Thorsten Leemhuis)
2023-07-08 13:20 ` Guenter Roeck
2023-07-08 13:37 ` Linux regression tracking (Thorsten Leemhuis)
2023-07-15 12:03 ` Linux regression tracking #update (Thorsten Leemhuis)
2023-06-05 7:01 ` [PATCH v2 05/27] locking/atomic: arc: add preprocessor symbols Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 06/27] locking/atomic: arm: " Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 07/27] locking/atomic: hexagon: " Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 08/27] locking/atomic: m68k: " Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` Mark Rutland [this message]
2023-06-06 8:26 ` [tip: locking/core] locking/atomic: parisc: " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 10/27] locking/atomic: sh: " Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 11/27] locking/atomic: sparc: " Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 12/27] locking/atomic: x86: " Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 13/27] locking/atomic: xtensa: " Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 14/27] locking/atomic: scripts: remove bogus order parameter Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 15/27] locking/atomic: scripts: remove leftover "${mult}" Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 16/27] locking/atomic: scripts: factor out order template generation Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 17/27] locking/atomic: scripts: add trivial raw_atomic*_<op>() Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 18/27] locking/atomic: treewide: use raw_atomic*_<op>() Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 19/27] locking/atomic: scripts: build raw_atomic_long*() directly Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 20/27] locking/atomic: scripts: restructure fallback ifdeffery Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 21/27] locking/atomic: scripts: split pfx/name/sfx/order Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 22/27] locking/atomic: scripts: simplify raw_atomic_long*() definitions Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 23/27] locking/atomic: scripts: simplify raw_atomic*() definitions Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 24/27] docs: scripts: kernel-doc: accept bitwise negation like ~@var Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-05 7:01 ` [PATCH v2 25/27] locking/atomic: scripts: generate kerneldoc comments Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
2023-06-15 14:07 ` [PATCH v2 25/27] " Paul E. McKenney
2023-06-16 8:57 ` Mark Rutland
2023-06-05 7:01 ` [PATCH v2 26/27] locking/atomic: docs: Add atomic operations to the driver basic API documentation Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Paul E. McKenney
2023-06-05 7:01 ` [PATCH v2 27/27] locking/atomic: treewide: delete arch_atomic_*() kerneldoc Mark Rutland
2023-06-06 8:26 ` [tip: locking/core] " tip-bot2 for Mark Rutland
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230605070124.3741859-10-mark.rutland@arm.com \
--to=mark.rutland@arm.com \
--cc=akiyks@gmail.com \
--cc=boqun.feng@gmail.com \
--cc=corbet@lwn.net \
--cc=keescook@chromium.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=mchehab@kernel.org \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=rdunlap@infradead.org \
--cc=sstabellini@kernel.org \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.