Some m32r builds were having a warning:

arch/m32r/include/asm/cmpxchg.h:191:3:
        warning: value computed is not used


arch/m32r/include/asm/cmpxchg.h:68:3:
        warning: value computed is not used

Taking the idea from e001bbae7147 ("ARM: cmpxchg: avoid warnings from
macro-ized cmpxchg() implementations") the m32r implementation is
changed to use a similar construct with a compound expression instead
of a typecast, which causes the compiler to not complain about an
unused result.

Signed-off-by: Sudip Mukherjee <[email protected]>
---
 arch/m32r/include/asm/cmpxchg.h | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/arch/m32r/include/asm/cmpxchg.h b/arch/m32r/include/asm/cmpxchg.h
index 14bf9b7..23c9d05 100644
--- a/arch/m32r/include/asm/cmpxchg.h
+++ b/arch/m32r/include/asm/cmpxchg.h
@@ -64,8 +64,10 @@
        return (tmp);
 }
 
-#define xchg(ptr, x)                                                   \
-       ((__typeof__(*(ptr)))__xchg((unsigned long)(x), (ptr), sizeof(*(ptr))))
+#define xchg(ptr, x) ({                                                        
\
+       ((__typeof__(*(ptr)))__xchg((unsigned long)(x), (ptr),          \
+                                   sizeof(*(ptr))));                   \
+})
 
 static __always_inline unsigned long
 __xchg_local(unsigned long x, volatile void *ptr, int size)
@@ -187,9 +189,12 @@
        return old;
 }
 
-#define cmpxchg(ptr, o, n)                                              \
-       ((__typeof__(*(ptr))) __cmpxchg((ptr), (unsigned long)(o),       \
-                       (unsigned long)(n), sizeof(*(ptr))))
+#define cmpxchg(ptr, o, n) ({                          \
+       ((__typeof__(*(ptr)))                           \
+                __cmpxchg((ptr), (unsigned long)(o),   \
+                          (unsigned long)(n),          \
+                          sizeof(*(ptr))));            \
+})
 
 #include <asm-generic/cmpxchg-local.h>
 
-- 
1.9.1

Reply via email to