arm64: cmpxchg: implement cmpxchg64_relaxed
authorWill Deacon <will.deacon@arm.com>
Wed, 9 Oct 2013 14:54:28 +0000 (15:54 +0100)
committerMark Brown <broonie@linaro.org>
Thu, 15 May 2014 19:00:54 +0000 (20:00 +0100)
This patch introduces cmpxchg64_relaxed for arm64 using the existing
cmpxchg_local macro, which performs a cmpxchg operation (up to 64 bits)
without barrier semantics.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit cf10b79a7d88edc689479af989b3a88e9adf07ff)
Signed-off-by: Mark Brown <broonie@linaro.org>
arch/arm64/include/asm/cmpxchg.h

index 8a8ce0e73a38234968e4cde566455284af5887a6..3914c0dcd09cf0d9ed3ceff35f3b5716762acc5a 100644 (file)
@@ -173,4 +173,6 @@ static inline unsigned long __cmpxchg_mb(volatile void *ptr, unsigned long old,
 #define cmpxchg64(ptr,o,n)             cmpxchg((ptr),(o),(n))
 #define cmpxchg64_local(ptr,o,n)       cmpxchg_local((ptr),(o),(n))
 
+#define cmpxchg64_relaxed(ptr,o,n)     cmpxchg_local((ptr),(o),(n))
+
 #endif /* __ASM_CMPXCHG_H */