summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlauber Costa <gcosta@redhat.com>2008-06-30 17:07:51 -0300
committerIngo Molnar <mingo@elte.hu>2008-07-09 09:14:14 +0200
commitc28b95d9bb7da0c3be22826c56a05899e21e5ece (patch)
tree9b54f6e541addeaf2c9aec7ef2860d957bb1538a
parent53938a68a2f971058bc53aaa8c70f9f24f684cdc (diff)
x86: change asm constraint.
Our integration efforts broke a build with this function being used with i386. Reason is "g" can put the operand in an imm32, which according to The Book (tm), is invalid as the second operand. This is actually a bug in x86_64 too, since the x86_64 instruction set reference does not list it as valid. We probably didn't trigger this before due to the ammount of registers available for 64-bit platforms. But that's just my guess. Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--include/asm-x86/uaccess_64.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/asm-x86/uaccess_64.h b/include/asm-x86/uaccess_64.h
index 012cba3972d7..dc6dde058381 100644
--- a/include/asm-x86/uaccess_64.h
+++ b/include/asm-x86/uaccess_64.h
@@ -44,7 +44,7 @@
asm("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0" \
: "=&r" (flag), "=r" (roksum) \
: "1" (addr), "g" ((long)(size)), \
- "g" (current_thread_info()->addr_limit.seg)); \
+ "rm" (current_thread_info()->addr_limit.seg)); \
flag; \
})