ARC: atomics: Implement arch_atomic64_cmpxchg using _relaxed
authorJason Gunthorpe <jgg@nvidia.com>
Tue, 8 Apr 2025 17:22:56 +0000 (14:22 -0300)
committerVineet Gupta <vgupta@kernel.org>
Mon, 9 Jun 2025 16:18:12 +0000 (09:18 -0700)
commitea7caffedd011f7d40abe93a884ffbe46f122535
tree5150133adef8320934dd7a3f0a6405cd19138882
parent19272b37aa4f83ca52bdf9c16d5d81bdd1354494
ARC: atomics: Implement arch_atomic64_cmpxchg using _relaxed

The core atomic code has a number of macros where it elaborates
architecture primitives into more functions. ARC uses
arch_atomic64_cmpxchg() as it's architecture primitive which disable alot
of the additional functions.

Instead provide arch_cmpxchg64_relaxed() as the primitive and rely on the
core macros to create arch_cmpxchg64().

The macros will also provide other functions, for instance,
try_cmpxchg64_release(), giving a more complete implementation.

Suggested-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/Z0747n5bSep4_1VX@J2N7QTR9R3
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Vineet Gupta <vgupta@kernel.org>
arch/arc/include/asm/atomic64-arcv2.h