[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <4F2183A9020000780006F3E6@nat28.tlf.novell.com>
Date: Thu, 26 Jan 2012 15:47:37 +0000
From: "Jan Beulich" <JBeulich@...e.com>
To: <mingo@...e.hu>, <tglx@...utronix.de>, <hpa@...or.com>
Cc: <linux-kernel@...r.kernel.org>
Subject: [PATCH] x86: properly parenthesize cmpxchg() macro arguments
Quite oddly, all of the arguments passed through from the top level
macros to the second level which didn't need parentheses had them,
while the only expression (involving a parameter) needing them didn't.
Very recently I got bitten by the lack thereof when using something
like "array + index" for the first operand, with "array" being an
array more narrow than int.
Signed-off-by: Jan Beulich <jbeulich@...e.com>
---
arch/x86/include/asm/cmpxchg.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- 3.3-rc1/arch/x86/include/asm/cmpxchg.h
+++ 3.3-rc1-x86-cmpxchg-parenthesize/arch/x86/include/asm/cmpxchg.h
@@ -145,13 +145,13 @@ extern void __add_wrong_size(void)
#ifdef __HAVE_ARCH_CMPXCHG
#define cmpxchg(ptr, old, new) \
- __cmpxchg((ptr), (old), (new), sizeof(*ptr))
+ __cmpxchg(ptr, old, new, sizeof(*(ptr)))
#define sync_cmpxchg(ptr, old, new) \
- __sync_cmpxchg((ptr), (old), (new), sizeof(*ptr))
+ __sync_cmpxchg(ptr, old, new, sizeof(*(ptr)))
#define cmpxchg_local(ptr, old, new) \
- __cmpxchg_local((ptr), (old), (new), sizeof(*ptr))
+ __cmpxchg_local(ptr, old, new, sizeof(*(ptr)))
#endif
/*
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists