summaryrefslogtreecommitdiffstats
path: root/include/asm-generic/atomic.h
diff options
context:
space:
mode:
authorAhmad Fatoum <a.fatoum@pengutronix.de>2023-11-22 18:29:42 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2023-11-23 15:50:35 +0100
commit55495a7c8845a2d788c870b90c4883f5ab2f2363 (patch)
tree57b3bf70ca4c43ec668ea9a098656da35797f83a /include/asm-generic/atomic.h
parentd6c0e2ea68baf76e22956f3c089c84d7fb17ab8d (diff)
downloadbarebox-55495a7c8845a2d788c870b90c4883f5ab2f2363.tar.gz
barebox-55495a7c8845a2d788c870b90c4883f5ab2f2363.tar.xz
include: asm-generic/atomic.h: define atomic_cmpxchg
We already define a generic cmpxchg implementation, so add one that operates on atomic_t as well. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20231122172951.376531-12-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include/asm-generic/atomic.h')
-rw-r--r--include/asm-generic/atomic.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/asm-generic/atomic.h b/include/asm-generic/atomic.h
index 27b0f73b48..74429e1c37 100644
--- a/include/asm-generic/atomic.h
+++ b/include/asm-generic/atomic.h
@@ -116,6 +116,8 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
*addr &= ~mask;
}
+#define atomic_cmpxchg(v, o, n) cmpxchg(&((v)->counter), o, n)
+
/* Atomic operations are already serializing on ARM */
#define smp_mb__before_atomic_dec() barrier()
#define smp_mb__after_atomic_dec() barrier()