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

Commit 60cf637a authored by Jan Beulich's avatar Jan Beulich Committed by Ingo Molnar
Browse files

x86: Use {push,pop}_cfi in more places



Cleaning up and shortening code...

Signed-off-by: default avatarJan Beulich <jbeulich@novell.com>
Cc: Alexander van Heukelum <heukelum@fastmail.fm>
LKML-Reference: <4D6BD35002000078000341DA@vpn.id2.novell.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 39f2205e
Loading
Loading
Loading
Loading
+9 −18
Original line number Original line Diff line number Diff line
@@ -126,26 +126,20 @@ ENTRY(ia32_sysenter_target)
	 */
	 */
	ENABLE_INTERRUPTS(CLBR_NONE)
	ENABLE_INTERRUPTS(CLBR_NONE)
 	movl	%ebp,%ebp		/* zero extension */
 	movl	%ebp,%ebp		/* zero extension */
	pushq	$__USER32_DS
	pushq_cfi $__USER32_DS
	CFI_ADJUST_CFA_OFFSET 8
	/*CFI_REL_OFFSET ss,0*/
	/*CFI_REL_OFFSET ss,0*/
	pushq	%rbp
	pushq_cfi %rbp
	CFI_ADJUST_CFA_OFFSET 8
	CFI_REL_OFFSET rsp,0
	CFI_REL_OFFSET rsp,0
	pushfq
	pushfq_cfi
	CFI_ADJUST_CFA_OFFSET 8
	/*CFI_REL_OFFSET rflags,0*/
	/*CFI_REL_OFFSET rflags,0*/
	movl	8*3-THREAD_SIZE+TI_sysenter_return(%rsp), %r10d
	movl	8*3-THREAD_SIZE+TI_sysenter_return(%rsp), %r10d
	CFI_REGISTER rip,r10
	CFI_REGISTER rip,r10
	pushq	$__USER32_CS
	pushq_cfi $__USER32_CS
	CFI_ADJUST_CFA_OFFSET 8
	/*CFI_REL_OFFSET cs,0*/
	/*CFI_REL_OFFSET cs,0*/
	movl	%eax, %eax
	movl	%eax, %eax
	pushq	%r10
	pushq_cfi %r10
	CFI_ADJUST_CFA_OFFSET 8
	CFI_REL_OFFSET rip,0
	CFI_REL_OFFSET rip,0
	pushq	%rax
	pushq_cfi %rax
	CFI_ADJUST_CFA_OFFSET 8
	cld
	cld
	SAVE_ARGS 0,0,1
	SAVE_ARGS 0,0,1
 	/* no need to do an access_ok check here because rbp has been
 	/* no need to do an access_ok check here because rbp has been
@@ -182,11 +176,9 @@ sysexit_from_sys_call:
	xorq	%r9,%r9
	xorq	%r9,%r9
	xorq	%r10,%r10
	xorq	%r10,%r10
	xorq	%r11,%r11
	xorq	%r11,%r11
	popfq
	popfq_cfi
	CFI_ADJUST_CFA_OFFSET -8
	/*CFI_RESTORE rflags*/
	/*CFI_RESTORE rflags*/
	popq	%rcx				/* User %esp */
	popq_cfi %rcx				/* User %esp */
	CFI_ADJUST_CFA_OFFSET -8
	CFI_REGISTER rsp,rcx
	CFI_REGISTER rsp,rcx
	TRACE_IRQS_ON
	TRACE_IRQS_ON
	ENABLE_INTERRUPTS_SYSEXIT32
	ENABLE_INTERRUPTS_SYSEXIT32
@@ -421,8 +413,7 @@ ENTRY(ia32_syscall)
	 */
	 */
	ENABLE_INTERRUPTS(CLBR_NONE)
	ENABLE_INTERRUPTS(CLBR_NONE)
	movl %eax,%eax
	movl %eax,%eax
	pushq %rax
	pushq_cfi %rax
	CFI_ADJUST_CFA_OFFSET 8
	cld
	cld
	/* note the registers are not zero extended to the sf.
	/* note the registers are not zero extended to the sf.
	   this could be a problem. */
	   this could be a problem. */
+2 −4
Original line number Original line Diff line number Diff line
@@ -7,14 +7,12 @@
   frame pointer later */
   frame pointer later */
#ifdef CONFIG_FRAME_POINTER
#ifdef CONFIG_FRAME_POINTER
	.macro FRAME
	.macro FRAME
	pushl %ebp
	pushl_cfi %ebp
	CFI_ADJUST_CFA_OFFSET 4
	CFI_REL_OFFSET ebp,0
	CFI_REL_OFFSET ebp,0
	movl %esp,%ebp
	movl %esp,%ebp
	.endm
	.endm
	.macro ENDFRAME
	.macro ENDFRAME
	popl %ebp
	popl_cfi %ebp
	CFI_ADJUST_CFA_OFFSET -4
	CFI_RESTORE ebp
	CFI_RESTORE ebp
	.endm
	.endm
#else
#else
+1 −2
Original line number Original line Diff line number Diff line
@@ -1409,8 +1409,7 @@ END(general_protection)
#ifdef CONFIG_KVM_GUEST
#ifdef CONFIG_KVM_GUEST
ENTRY(async_page_fault)
ENTRY(async_page_fault)
	RING0_EC_FRAME
	RING0_EC_FRAME
	pushl $do_async_page_fault
	pushl_cfi $do_async_page_fault
	CFI_ADJUST_CFA_OFFSET 4
	jmp error_code
	jmp error_code
	CFI_ENDPROC
	CFI_ENDPROC
END(apf_page_fault)
END(apf_page_fault)
+2 −4
Original line number Original line Diff line number Diff line
@@ -15,14 +15,12 @@


/* if you want SMP support, implement these with real spinlocks */
/* if you want SMP support, implement these with real spinlocks */
.macro LOCK reg
.macro LOCK reg
	pushfl
	pushfl_cfi
	CFI_ADJUST_CFA_OFFSET 4
	cli
	cli
.endm
.endm


.macro UNLOCK reg
.macro UNLOCK reg
	popfl
	popfl_cfi
	CFI_ADJUST_CFA_OFFSET -4
.endm
.endm


#define BEGIN(op) \
#define BEGIN(op) \
+2 −4
Original line number Original line Diff line number Diff line
@@ -14,14 +14,12 @@
#include <asm/dwarf2.h>
#include <asm/dwarf2.h>


.macro SAVE reg
.macro SAVE reg
	pushl %\reg
	pushl_cfi %\reg
	CFI_ADJUST_CFA_OFFSET 4
	CFI_REL_OFFSET \reg, 0
	CFI_REL_OFFSET \reg, 0
.endm
.endm


.macro RESTORE reg
.macro RESTORE reg
	popl %\reg
	popl_cfi %\reg
	CFI_ADJUST_CFA_OFFSET -4
	CFI_RESTORE \reg
	CFI_RESTORE \reg
.endm
.endm


Loading