Re: [PATCHv2 01/16] atomics/treewide: s/__atomic_add_unless/atomic_fetch_add_unless/

From: Palmer Dabbelt
Date: Mon Jun 04 2018 - 19:24:51 EST


On Tue, 29 May 2018 08:43:31 PDT (-0700), mark.rutland@xxxxxxx wrote:
While __atomic_add_unless was originally intended as a building-block
for atomic_add_unless, it's now used in a number of places around the
kernel. It's the only common atomic operation named __atomic*(), rather
than atomic_*(), and for consistency it would be better named
atomic_fetch_add_unless().

This lack of consistency is slightly confusing, and gets in the way of
scripting atomics. Given that, let's clean things up and promote it to
an offical part of the atomics API, in the form of
atomic_fetch_add_unless().

This patch converts definitions and uses over to the new name, including
the instrumented version, using the following script:

----
git grep -w __atomic_add_unless | while read line; do
sed -i '{s/\<__atomic_add_unless\>/atomic_fetch_add_unless/}' "${line%%:*}";
done
git grep -w __arch_atomic_add_unless | while read line; do
sed -i '{s/\<__arch_atomic_add_unless\>/arch_atomic_fetch_add_unless/}' "${line%%:*}";
done
----

Note that we do not have atomic{64,_long}_fetch_add_unless(), which will
be introduced by later patches.

There should be no functional change as a result of this patch.

Signed-off-by: Mark Rutland <mark.rutland@xxxxxxx>
Acked-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Boqun Feng <boqun.feng@xxxxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
---
arch/alpha/include/asm/atomic.h | 4 ++--
arch/arc/include/asm/atomic.h | 4 ++--
arch/arm/include/asm/atomic.h | 4 ++--
arch/arm64/include/asm/atomic.h | 2 +-
arch/h8300/include/asm/atomic.h | 2 +-
arch/hexagon/include/asm/atomic.h | 4 ++--
arch/ia64/include/asm/atomic.h | 2 +-
arch/m68k/include/asm/atomic.h | 2 +-
arch/mips/include/asm/atomic.h | 4 ++--
arch/openrisc/include/asm/atomic.h | 4 ++--
arch/parisc/include/asm/atomic.h | 4 ++--
arch/powerpc/include/asm/atomic.h | 8 ++++----
arch/riscv/include/asm/atomic.h | 4 ++--
arch/s390/include/asm/atomic.h | 2 +-
arch/sh/include/asm/atomic.h | 4 ++--
arch/sparc/include/asm/atomic_32.h | 2 +-
arch/sparc/include/asm/atomic_64.h | 2 +-
arch/sparc/lib/atomic32.c | 4 ++--
arch/x86/include/asm/atomic.h | 4 ++--
arch/xtensa/include/asm/atomic.h | 4 ++--
drivers/block/rbd.c | 2 +-
drivers/infiniband/core/rdma_core.c | 2 +-
fs/afs/rxrpc.c | 2 +-
include/asm-generic/atomic-instrumented.h | 4 ++--
include/asm-generic/atomic.h | 4 ++--
include/linux/atomic.h | 2 +-
kernel/bpf/syscall.c | 4 ++--
net/rxrpc/call_object.c | 2 +-
net/rxrpc/conn_object.c | 4 ++--
net/rxrpc/local_object.c | 2 +-
net/rxrpc/peer_object.c | 2 +-
31 files changed, 50 insertions(+), 50 deletions(-)
[...]
diff --git a/arch/riscv/include/asm/atomic.h b/arch/riscv/include/asm/atomic.h
index 855115ace98c..739e810c857e 100644
--- a/arch/riscv/include/asm/atomic.h
+++ b/arch/riscv/include/asm/atomic.h
@@ -332,7 +332,7 @@ ATOMIC_OP(dec_and_test, dec, ==, 0, 64)
#undef ATOMIC_OP

/* This is required to provide a full barrier on success. */
-static __always_inline int __atomic_add_unless(atomic_t *v, int a, int u)
+static __always_inline int atomic_fetch_add_unless(atomic_t *v, int a, int u)
{
int prev, rc;

@@ -381,7 +381,7 @@ static __always_inline int atomic64_add_unless(atomic64_t *v, long a, long u)
*/
static __always_inline int atomic_inc_not_zero(atomic_t *v)
{
- return __atomic_add_unless(v, 1, 0);
+ return atomic_fetch_add_unless(v, 1, 0);
}

#ifndef CONFIG_GENERIC_ATOMIC64
diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h
index 4b55532f15c4..c2858cdd8c29 100644
--- a/arch/s390/include/asm/atomic.h
+++ b/arch/s390/include/asm/atomic.h
@@ -90,7 +90,7 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
return __atomic_cmpxchg(&v->counter, old, new);
}

-static inline int __atomic_add_unless(atomic_t *v, int a, int u)
+static inline int atomic_fetch_add_unless(atomic_t *v, int a, int u)
{
int c, old;
c = atomic_read(v);

Acked-by: Palmer Dabbelt <palmer@xxxxxxxxxx>

Thanks!