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 Diff line number Diff line
@@ -126,26 +126,20 @@ ENTRY(ia32_sysenter_target)
	 */
	ENABLE_INTERRUPTS(CLBR_NONE)
 	movl	%ebp,%ebp		/* zero extension */
	pushq	$__USER32_DS
	CFI_ADJUST_CFA_OFFSET 8
	pushq_cfi $__USER32_DS
	/*CFI_REL_OFFSET ss,0*/
	pushq	%rbp
	CFI_ADJUST_CFA_OFFSET 8
	pushq_cfi %rbp
	CFI_REL_OFFSET rsp,0
	pushfq
	CFI_ADJUST_CFA_OFFSET 8
	pushfq_cfi
	/*CFI_REL_OFFSET rflags,0*/
	movl	8*3-THREAD_SIZE+TI_sysenter_return(%rsp), %r10d
	CFI_REGISTER rip,r10
	pushq	$__USER32_CS
	CFI_ADJUST_CFA_OFFSET 8
	pushq_cfi $__USER32_CS
	/*CFI_REL_OFFSET cs,0*/
	movl	%eax, %eax
	pushq	%r10
	CFI_ADJUST_CFA_OFFSET 8
	pushq_cfi %r10
	CFI_REL_OFFSET rip,0
	pushq	%rax
	CFI_ADJUST_CFA_OFFSET 8
	pushq_cfi %rax
	cld
	SAVE_ARGS 0,0,1
 	/* 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	%r10,%r10
	xorq	%r11,%r11
	popfq
	CFI_ADJUST_CFA_OFFSET -8
	popfq_cfi
	/*CFI_RESTORE rflags*/
	popq	%rcx				/* User %esp */
	CFI_ADJUST_CFA_OFFSET -8
	popq_cfi %rcx				/* User %esp */
	CFI_REGISTER rsp,rcx
	TRACE_IRQS_ON
	ENABLE_INTERRUPTS_SYSEXIT32
@@ -421,8 +413,7 @@ ENTRY(ia32_syscall)
	 */
	ENABLE_INTERRUPTS(CLBR_NONE)
	movl %eax,%eax
	pushq %rax
	CFI_ADJUST_CFA_OFFSET 8
	pushq_cfi %rax
	cld
	/* note the registers are not zero extended to the sf.
	   this could be a problem. */
+2 −4
Original line number Diff line number Diff line
@@ -7,14 +7,12 @@
   frame pointer later */
#ifdef CONFIG_FRAME_POINTER
	.macro FRAME
	pushl %ebp
	CFI_ADJUST_CFA_OFFSET 4
	pushl_cfi %ebp
	CFI_REL_OFFSET ebp,0
	movl %esp,%ebp
	.endm
	.macro ENDFRAME
	popl %ebp
	CFI_ADJUST_CFA_OFFSET -4
	popl_cfi %ebp
	CFI_RESTORE ebp
	.endm
#else
+1 −2
Original line number Diff line number Diff line
@@ -1409,8 +1409,7 @@ END(general_protection)
#ifdef CONFIG_KVM_GUEST
ENTRY(async_page_fault)
	RING0_EC_FRAME
	pushl $do_async_page_fault
	CFI_ADJUST_CFA_OFFSET 4
	pushl_cfi $do_async_page_fault
	jmp error_code
	CFI_ENDPROC
END(apf_page_fault)
+2 −4
Original line number Diff line number Diff line
@@ -15,14 +15,12 @@

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

.macro UNLOCK reg
	popfl
	CFI_ADJUST_CFA_OFFSET -4
	popfl_cfi
.endm

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

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

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

Loading