]> git.ipfire.org Git - thirdparty/linux.git/commit
locking/atomic: make atomic*_{cmp,}xchg optional
authorMark Rutland <mark.rutland@arm.com>
Mon, 5 Jun 2023 07:01:01 +0000 (08:01 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 5 Jun 2023 07:57:14 +0000 (09:57 +0200)
commitd12157efc8e083c77d054675fcdd594f54cc7e2b
tree9be23f46b4b8db9d3e36a8b551d8961d8d41822d
parenta7bafa7969da1c0e9c342c792d8224078d1c491c
locking/atomic: make atomic*_{cmp,}xchg optional

Most architectures define the atomic/atomic64 xchg and cmpxchg
operations in terms of arch_xchg and arch_cmpxchg respectfully.

Add fallbacks for these cases and remove the trivial cases from arch
code. On some architectures the existing definitions are kept as these
are used to build other arch_atomic*() operations.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20230605070124.3741859-5-mark.rutland@arm.com
23 files changed:
arch/alpha/include/asm/atomic.h
arch/arc/include/asm/atomic.h
arch/arc/include/asm/atomic64-arcv2.h
arch/arm/include/asm/atomic.h
arch/arm64/include/asm/atomic.h
arch/csky/include/asm/atomic.h
arch/hexagon/include/asm/atomic.h
arch/ia64/include/asm/atomic.h
arch/loongarch/include/asm/atomic.h
arch/m68k/include/asm/atomic.h
arch/mips/include/asm/atomic.h
arch/openrisc/include/asm/atomic.h
arch/parisc/include/asm/atomic.h
arch/powerpc/include/asm/atomic.h
arch/riscv/include/asm/atomic.h
arch/sh/include/asm/atomic.h
arch/sparc/include/asm/atomic_32.h
arch/sparc/include/asm/atomic_64.h
arch/xtensa/include/asm/atomic.h
include/asm-generic/atomic.h
include/linux/atomic/atomic-arch-fallback.h
scripts/atomic/fallbacks/cmpxchg [new file with mode: 0644]
scripts/atomic/fallbacks/xchg [new file with mode: 0644]