Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] x86-64: Lose constraints on cmpxchg

While only cosmetic for x86-64, this adjusts the cmpxchg code appearantly
inherited from i386 to use more generic constraints.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Jan Beulich and committed by
Linus Torvalds
a2d236b3 1a426cb7

+3 -3
+3 -3
include/asm-x86_64/system.h
··· 253 253 case 2: 254 254 __asm__ __volatile__(LOCK_PREFIX "cmpxchgw %w1,%2" 255 255 : "=a"(prev) 256 - : "q"(new), "m"(*__xg(ptr)), "0"(old) 256 + : "r"(new), "m"(*__xg(ptr)), "0"(old) 257 257 : "memory"); 258 258 return prev; 259 259 case 4: 260 260 __asm__ __volatile__(LOCK_PREFIX "cmpxchgl %k1,%2" 261 261 : "=a"(prev) 262 - : "q"(new), "m"(*__xg(ptr)), "0"(old) 262 + : "r"(new), "m"(*__xg(ptr)), "0"(old) 263 263 : "memory"); 264 264 return prev; 265 265 case 8: 266 266 __asm__ __volatile__(LOCK_PREFIX "cmpxchgq %1,%2" 267 267 : "=a"(prev) 268 - : "q"(new), "m"(*__xg(ptr)), "0"(old) 268 + : "r"(new), "m"(*__xg(ptr)), "0"(old) 269 269 : "memory"); 270 270 return prev; 271 271 }