diff options
author | Glauber Costa <gcosta@redhat.com> | 2008-06-24 20:03:40 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-09 09:14:08 +0200 |
commit | 770546b99fb99e71a3aa4181980d42664f9c18bd (patch) | |
tree | 46339e76339c08a4ab0513840af18ef42f5b178a | |
parent | x86: user put_user_x instead of all variants. (diff) | |
download | linux-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.S | 18 | ||||
-rw-r--r-- | include/asm-x86/uaccess_64.h | 2 |
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))) |