]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
s390/cmpxchg: Use arch_cmpxchg() instead of __atomic_cmpxchg()
authorHeiko Carstens <hca@linux.ibm.com>
Wed, 6 Nov 2024 10:03:12 +0000 (11:03 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Tue, 12 Nov 2024 13:01:28 +0000 (14:01 +0100)
Use arch_cmpxchg() instead of __atomic_cmpxchg() for the
arch_atomic_cmpxchg() implementations. arch_cmpxchg() generates
the same code and doesn't need a cast like it is required for
arch_atomic64_cmpxchg().

Reviewed-by: Juergen Christ <jchrist@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/include/asm/atomic.h

index fcedb01c7fe089dabb45d40723dc269f0a517602..38e81fb7e066bc3de21b7daa2a7ae74a83f92fd0 100644 (file)
@@ -80,7 +80,7 @@ static __always_inline int arch_atomic_xchg(atomic_t *v, int new)
 
 static __always_inline int arch_atomic_cmpxchg(atomic_t *v, int old, int new)
 {
-       return __atomic_cmpxchg(&v->counter, old, new);
+       return arch_cmpxchg(&v->counter, old, new);
 }
 #define arch_atomic_cmpxchg arch_atomic_cmpxchg
 
@@ -124,7 +124,7 @@ static __always_inline s64 arch_atomic64_xchg(atomic64_t *v, s64 new)
 
 static __always_inline s64 arch_atomic64_cmpxchg(atomic64_t *v, s64 old, s64 new)
 {
-       return __atomic64_cmpxchg((long *)&v->counter, old, new);
+       return arch_cmpxchg(&v->counter, old, new);
 }
 #define arch_atomic64_cmpxchg arch_atomic64_cmpxchg