Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 770546b9 authored by Glauber Costa's avatar Glauber Costa Committed by Ingo Molnar
Browse files

x86: clobber rbx in putuser_64.S.



Instead of clobbering r8, clobber rbx, which is the i386 way.

Signed-off-by: default avatarGlauber Costa <gcosta@redhat.com>
Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 70706e43
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -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)
+1 −1
Original line number Diff line number Diff line
@@ -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)))