From bbf3c691fdb377dc40dddcb354db06a4c0fab98b Mon Sep 17 00:00:00 2001 From: Andrei Vagin Date: Thu, 12 Mar 2026 15:40:01 +0000 Subject: [PATCH] loongarch64: implement atomic_dec_and_test It is used in criu/pie/restorer.c. Signed-off-by: Andrei Vagin --- include/common/arch/loongarch64/asm/atomic.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/common/arch/loongarch64/asm/atomic.h b/include/common/arch/loongarch64/asm/atomic.h index 901725439..d0858c1b2 100644 --- a/include/common/arch/loongarch64/asm/atomic.h +++ b/include/common/arch/loongarch64/asm/atomic.h @@ -41,6 +41,8 @@ static inline int atomic_add_return(int i, atomic_t *v) #define atomic_inc_return(v) atomic_add_return(1, v) #define atomic_dec(v) atomic_sub(1, v) #define atomic_dec_return(v) atomic_sub_return(1, v) +/* true if the result is 0, or false for all other cases. */ +#define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0) static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new) {