m32r: fix build warning
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>
Wed, 22 Feb 2017 23:40:35 +0000 (15:40 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 23 Feb 2017 00:41:27 +0000 (16:41 -0800)
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 commit 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.

Link: http://lkml.kernel.org/r/1484432664-7015-1-git-send-email-sudipm.mukherjee@gmail.com
Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/m32r/include/asm/cmpxchg.h

index 14bf9b739dd2c8eb643a805263dc88741fd3b1de..23c9d0537201e6c2666d119db128280181ce4708 100644 (file)
@@ -64,8 +64,10 @@ __xchg(unsigned long x, volatile void *ptr, int size)
        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 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size)
        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>