sparc32: make __cmpxchg_u32() return u32
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 2 Apr 2024 01:58:50 +0000 (21:58 -0400)
committerPaul E. McKenney <paulmck@kernel.org>
Wed, 10 Apr 2024 05:06:00 +0000 (22:06 -0700)
Conversion between u32 and unsigned long is tautological there,
and the only use of return value is to return it from
__cmpxchg() (which return unsigned long).

Get rid of explicit casts in __cmpxchg_u32() call, while we are
at it - normal conversions for arguments will do just fine.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
arch/sparc/include/asm/cmpxchg_32.h
arch/sparc/lib/atomic32.c

index d0af82c240b7318fcde01a6fe613d6a611fe4540..2a05cb236480c1b001a6cfd8e2fdbf40e6ca7dce 100644 (file)
@@ -39,7 +39,7 @@ static __always_inline unsigned long __arch_xchg(unsigned long x, __volatile__ v
 /* bug catcher for when unsupported size is used - won't link */
 void __cmpxchg_called_with_bad_pointer(void);
 /* we only need to support cmpxchg of a u32 on sparc */
-unsigned long __cmpxchg_u32(volatile u32 *m, u32 old, u32 new_);
+u32 __cmpxchg_u32(volatile u32 *m, u32 old, u32 new_);
 
 /* don't worry...optimizer will get rid of most of this */
 static inline unsigned long
@@ -47,7 +47,7 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new_, int size)
 {
        switch (size) {
        case 4:
-               return __cmpxchg_u32((u32 *)ptr, (u32)old, (u32)new_);
+               return __cmpxchg_u32(ptr, old, new_);
        default:
                __cmpxchg_called_with_bad_pointer();
                break;
index cf80d1ae352be668b8e87ac5baa7595537c5f60b..d90d756123d8163823f092a76bf9fc0ae8a3e17a 100644 (file)
@@ -159,7 +159,7 @@ unsigned long sp32___change_bit(unsigned long *addr, unsigned long mask)
 }
 EXPORT_SYMBOL(sp32___change_bit);
 
-unsigned long __cmpxchg_u32(volatile u32 *ptr, u32 old, u32 new)
+u32 __cmpxchg_u32(volatile u32 *ptr, u32 old, u32 new)
 {
        unsigned long flags;
        u32 prev;
@@ -169,7 +169,7 @@ unsigned long __cmpxchg_u32(volatile u32 *ptr, u32 old, u32 new)
                *ptr = new;
        spin_unlock_irqrestore(ATOMIC_HASH(ptr), flags);
 
-       return (unsigned long)prev;
+       return prev;
 }
 EXPORT_SYMBOL(__cmpxchg_u32);