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

Commit 09402947 authored by Jeremy Fitzhardinge's avatar Jeremy Fitzhardinge Committed by Ingo Molnar
Browse files

x86_64: adjust exception frame on paranoid exceptions



Exceptions using paranoidentry need to have their exception frames
adjusted explicitly.

Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
parent d5303b81
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -1189,6 +1189,7 @@ END(device_not_available)
	/* runs on exception stack */
	/* runs on exception stack */
KPROBE_ENTRY(debug)
KPROBE_ENTRY(debug)
 	INTR_FRAME
 	INTR_FRAME
	PARAVIRT_ADJUST_EXCEPTION_FRAME
	pushq $0
	pushq $0
	CFI_ADJUST_CFA_OFFSET 8		
	CFI_ADJUST_CFA_OFFSET 8		
	paranoidentry do_debug, DEBUG_STACK
	paranoidentry do_debug, DEBUG_STACK
@@ -1198,6 +1199,7 @@ KPROBE_END(debug)
	/* runs on exception stack */	
	/* runs on exception stack */	
KPROBE_ENTRY(nmi)
KPROBE_ENTRY(nmi)
	INTR_FRAME
	INTR_FRAME
	PARAVIRT_ADJUST_EXCEPTION_FRAME
	pushq $-1
	pushq $-1
	CFI_ADJUST_CFA_OFFSET 8
	CFI_ADJUST_CFA_OFFSET 8
	paranoidentry do_nmi, 0, 0
	paranoidentry do_nmi, 0, 0
@@ -1211,6 +1213,7 @@ KPROBE_END(nmi)


KPROBE_ENTRY(int3)
KPROBE_ENTRY(int3)
 	INTR_FRAME
 	INTR_FRAME
	PARAVIRT_ADJUST_EXCEPTION_FRAME
 	pushq $0
 	pushq $0
 	CFI_ADJUST_CFA_OFFSET 8
 	CFI_ADJUST_CFA_OFFSET 8
 	paranoidentry do_int3, DEBUG_STACK
 	paranoidentry do_int3, DEBUG_STACK
@@ -1237,6 +1240,7 @@ END(coprocessor_segment_overrun)
	/* runs on exception stack */
	/* runs on exception stack */
ENTRY(double_fault)
ENTRY(double_fault)
	XCPT_FRAME
	XCPT_FRAME
	PARAVIRT_ADJUST_EXCEPTION_FRAME
	paranoidentry do_double_fault
	paranoidentry do_double_fault
	jmp paranoid_exit1
	jmp paranoid_exit1
	CFI_ENDPROC
	CFI_ENDPROC
@@ -1253,6 +1257,7 @@ END(segment_not_present)
	/* runs on exception stack */
	/* runs on exception stack */
ENTRY(stack_segment)
ENTRY(stack_segment)
	XCPT_FRAME
	XCPT_FRAME
	PARAVIRT_ADJUST_EXCEPTION_FRAME
	paranoidentry do_stack_segment
	paranoidentry do_stack_segment
	jmp paranoid_exit1
	jmp paranoid_exit1
	CFI_ENDPROC
	CFI_ENDPROC
@@ -1278,6 +1283,7 @@ END(spurious_interrupt_bug)
	/* runs on exception stack */
	/* runs on exception stack */
ENTRY(machine_check)
ENTRY(machine_check)
	INTR_FRAME
	INTR_FRAME
	PARAVIRT_ADJUST_EXCEPTION_FRAME
	pushq $0
	pushq $0
	CFI_ADJUST_CFA_OFFSET 8	
	CFI_ADJUST_CFA_OFFSET 8	
	paranoidentry do_machine_check
	paranoidentry do_machine_check