]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
m68k: cmpxchg: Use swap() to improve code
authorThorsten Blum <thorsten.blum@toblux.com>
Tue, 30 Jul 2024 23:45:07 +0000 (01:45 +0200)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Mon, 26 Aug 2024 08:24:34 +0000 (10:24 +0200)
Remove the local variable tmp and use the swap() macro instead.

Signed-off-by: Thorsten Blum <thorsten.blum@toblux.com>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/20240730234506.492743-2-thorsten.blum@toblux.com
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
arch/m68k/include/asm/cmpxchg.h

index 4ba14f3535fcbe2fc108b2af41eb41a34c18a821..71fbe5c5c5643c1b0976cc1df8f28b55639c7c08 100644 (file)
@@ -3,6 +3,7 @@
 #define __ARCH_M68K_CMPXCHG__
 
 #include <linux/irqflags.h>
+#include <linux/minmax.h>
 
 #define __xg(type, x) ((volatile type *)(x))
 
@@ -11,25 +12,19 @@ extern unsigned long __invalid_xchg_size(unsigned long, volatile void *, int);
 #ifndef CONFIG_RMW_INSNS
 static inline unsigned long __arch_xchg(unsigned long x, volatile void * ptr, int size)
 {
-       unsigned long flags, tmp;
+       unsigned long flags;
 
        local_irq_save(flags);
 
        switch (size) {
        case 1:
-               tmp = *(u8 *)ptr;
-               *(u8 *)ptr = x;
-               x = tmp;
+               swap(*(u8 *)ptr, x);
                break;
        case 2:
-               tmp = *(u16 *)ptr;
-               *(u16 *)ptr = x;
-               x = tmp;
+               swap(*(u16 *)ptr, x);
                break;
        case 4:
-               tmp = *(u32 *)ptr;
-               *(u32 *)ptr = x;
-               x = tmp;
+               swap(*(u32 *)ptr, x);
                break;
        default:
                x = __invalid_xchg_size(x, ptr, size);