summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlauber Costa <gcosta@redhat.com>2008-06-24 20:03:40 +0200
committerIngo Molnar <mingo@elte.hu>2008-07-09 09:14:08 +0200
commit770546b99fb99e71a3aa4181980d42664f9c18bd (patch)
tree46339e76339c08a4ab0513840af18ef42f5b178a
parentx86: user put_user_x instead of all variants. (diff)
downloadlinux-770546b99fb99e71a3aa4181980d42664f9c18bd.tar.xz
linux-770546b99fb99e71a3aa4181980d42664f9c18bd.zip
x86: clobber rbx in putuser_64.S.
Instead of clobbering r8, clobber rbx, which is the i386 way. 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--arch/x86/lib/putuser_64.S18
-rw-r--r--include/asm-x86/uaccess_64.h2
2 files changed, 10 insertions, 10 deletions
diff --git a/arch/x86/lib/putuser_64.S b/arch/x86/lib/putuser_64.S
index 940796fa0d98..07028851064c 100644
--- a/arch/x86/lib/putuser_64.S
+++ b/arch/x86/lib/putuser_64.S
@@ -18,7 +18,7 @@
*
* Outputs: %rax is error code (0 or -EFAULT)
*
- * %r8 is destroyed.
+ * %rbx is destroyed.
*
* These functions should not modify any other registers,
* as they get called from within inline assembly.
@@ -34,8 +34,8 @@
.text
ENTRY(__put_user_1)
CFI_STARTPROC
- GET_THREAD_INFO(%r8)
- cmpq TI_addr_limit(%r8),%rcx
+ GET_THREAD_INFO(%rbx)
+ cmpq TI_addr_limit(%rbx),%rcx
jae bad_put_user
1: movb %dl,(%rcx)
xorl %eax,%eax
@@ -45,10 +45,10 @@ ENDPROC(__put_user_1)
ENTRY(__put_user_2)
CFI_STARTPROC
- GET_THREAD_INFO(%r8)
+ GET_THREAD_INFO(%rbx)
addq $1,%rcx
jc 20f
- cmpq TI_addr_limit(%r8),%rcx
+ cmpq TI_addr_limit(%rbx),%rcx
jae 20f
decq %rcx
2: movw %dx,(%rcx)
@@ -61,10 +61,10 @@ ENDPROC(__put_user_2)
ENTRY(__put_user_4)
CFI_STARTPROC
- GET_THREAD_INFO(%r8)
+ GET_THREAD_INFO(%rbx)
addq $3,%rcx
jc 30f
- cmpq TI_addr_limit(%r8),%rcx
+ cmpq TI_addr_limit(%rbx),%rcx
jae 30f
subq $3,%rcx
3: movl %edx,(%rcx)
@@ -77,10 +77,10 @@ ENDPROC(__put_user_4)
ENTRY(__put_user_8)
CFI_STARTPROC
- GET_THREAD_INFO(%r8)
+ GET_THREAD_INFO(%rbx)
addq $7,%rcx
jc 40f
- cmpq TI_addr_limit(%r8),%rcx
+ cmpq TI_addr_limit(%rbx),%rcx
jae 40f
subq $7,%rcx
4: movq %rdx,(%rcx)
diff --git a/include/asm-x86/uaccess_64.h b/include/asm-x86/uaccess_64.h
index a2d49078e19c..21fda9ebee13 100644
--- a/include/asm-x86/uaccess_64.h
+++ b/include/asm-x86/uaccess_64.h
@@ -131,7 +131,7 @@ extern void __put_user_bad(void);
asm volatile("call __put_user_" #size \
:"=a" (ret) \
:"c" (ptr),"d" (x) \
- :"r8")
+ :"ebx")
#define put_user(x, ptr) \
__put_user_check((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))