From: Mark Rutland <mark.rutland@arm.com>
To: guoren@kernel.org
Cc: peterz@infradead.org, keescook@chromium.org, paulmck@kernel.org,
ubizjak@gmail.com, tglx@linutronix.de,
linux-kernel@vger.kernel.org, Guo Ren <guoren@linux.alibaba.com>
Subject: Re: [PATCH V3] locking/atomic: scripts: Exclude arch_atomic(64)_read(set) mappings
Date: Mon, 27 Nov 2023 11:56:26 +0000 [thread overview]
Message-ID: <ZWSD6v1d9wwOxOYd@FVFF77S0Q05N> (raw)
In-Reply-To: <20231126013921.103133-1-guoren@kernel.org>
On Sat, Nov 25, 2023 at 08:39:21PM -0500, guoren@kernel.org wrote:
> From: Guo Ren <guoren@linux.alibaba.com>
>
> The definitions of atomic(64)_read(set) are relax version, and using
> them for acquire and release is incorrect, so exclude these mappings.
This was fixed by commit:
6d2779ecaeb56f92 ("locking/atomic: scripts: fix fallback ifdeffery")
That commit was in v6.6-rc3, and has been backported to stable kernels.
I think you're using an old kernel as a base.
Thanks,
Mark.
>
> Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
> Signed-off-by: Guo Ren <guoren@kernel.org>
> ---
> Changelog:
> v3:
> - Minimize modification on atomic(64)_read(set)
>
> v2:
> - Use gen-atomic-fallback.sh instead of header modification
> ---
> include/linux/atomic/atomic-arch-fallback.h | 10 +---------
> scripts/atomic/gen-atomic-fallback.sh | 3 ++-
> 2 files changed, 3 insertions(+), 10 deletions(-)
>
> diff --git a/include/linux/atomic/atomic-arch-fallback.h b/include/linux/atomic/atomic-arch-fallback.h
> index 18f5744dfb5d..b83ef19da13d 100644
> --- a/include/linux/atomic/atomic-arch-fallback.h
> +++ b/include/linux/atomic/atomic-arch-fallback.h
> @@ -459,8 +459,6 @@ raw_atomic_read_acquire(const atomic_t *v)
> {
> #if defined(arch_atomic_read_acquire)
> return arch_atomic_read_acquire(v);
> -#elif defined(arch_atomic_read)
> - return arch_atomic_read(v);
> #else
> int ret;
>
> @@ -508,8 +506,6 @@ raw_atomic_set_release(atomic_t *v, int i)
> {
> #if defined(arch_atomic_set_release)
> arch_atomic_set_release(v, i);
> -#elif defined(arch_atomic_set)
> - arch_atomic_set(v, i);
> #else
> if (__native_word(atomic_t)) {
> smp_store_release(&(v)->counter, i);
> @@ -2575,8 +2571,6 @@ raw_atomic64_read_acquire(const atomic64_t *v)
> {
> #if defined(arch_atomic64_read_acquire)
> return arch_atomic64_read_acquire(v);
> -#elif defined(arch_atomic64_read)
> - return arch_atomic64_read(v);
> #else
> s64 ret;
>
> @@ -2624,8 +2618,6 @@ raw_atomic64_set_release(atomic64_t *v, s64 i)
> {
> #if defined(arch_atomic64_set_release)
> arch_atomic64_set_release(v, i);
> -#elif defined(arch_atomic64_set)
> - arch_atomic64_set(v, i);
> #else
> if (__native_word(atomic64_t)) {
> smp_store_release(&(v)->counter, i);
> @@ -4657,4 +4649,4 @@ raw_atomic64_dec_if_positive(atomic64_t *v)
> }
>
> #endif /* _LINUX_ATOMIC_FALLBACK_H */
> -// 202b45c7db600ce36198eb1f1fc2c2d5268ace2d
> +// 2fdd6702823fa842f9cea57a002e6e4476ae780c
> diff --git a/scripts/atomic/gen-atomic-fallback.sh b/scripts/atomic/gen-atomic-fallback.sh
> index c0c8a85d7c81..282a1d3c41d4 100755
> --- a/scripts/atomic/gen-atomic-fallback.sh
> +++ b/scripts/atomic/gen-atomic-fallback.sh
> @@ -102,7 +102,8 @@ gen_proto_order_variant()
> fi
>
> # Allow ACQUIRE/RELEASE/RELAXED ops to be defined in terms of FULL ops
> - if [ ! -z "${order}" ]; then
> + # Exclude arch_atomic(64)_read(set) mappings because these are not FULL ops.
> + if [ ! -z "${order}" ] && [ "${name}" != "read" ] && [ "${name}" != "set" ]; then
> printf "#elif defined(arch_${basename})\n"
> printf "\t${retstmt}arch_${basename}(${args});\n"
> fi
> --
> 2.36.1
>
next prev parent reply other threads:[~2023-11-27 11:56 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-26 1:39 [PATCH V3] locking/atomic: scripts: Exclude arch_atomic(64)_read(set) mappings guoren
2023-11-27 11:56 ` Mark Rutland [this message]
2023-11-27 13:05 ` Guo Ren
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=ZWSD6v1d9wwOxOYd@FVFF77S0Q05N \
--to=mark.rutland@arm.com \
--cc=guoren@kernel.org \
--cc=guoren@linux.alibaba.com \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=ubizjak@gmail.com \
/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.