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

Commit c15a5958 authored by Brian Gerst's avatar Brian Gerst Committed by H. Peter Anvin
Browse files

x86-64, asm: Directly access per-cpu IST



Use a direct per-cpu reference for the IST instead of using a scratch
register.

Signed-off-by: default avatarBrian Gerst <brgerst@gmail.com>
LKML-Reference: <1280594903-6341-1-git-send-email-brgerst@gmail.com>
Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
parent a378d933
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1065,6 +1065,7 @@ ENTRY(\sym)
END(\sym)
.endm

#define INIT_TSS_IST(x) PER_CPU_VAR(init_tss) + (TSS_ist + ((x) - 1) * 8)
.macro paranoidzeroentry_ist sym do_sym ist
ENTRY(\sym)
	INTR_FRAME
@@ -1076,10 +1077,9 @@ ENTRY(\sym)
	TRACE_IRQS_OFF
	movq %rsp,%rdi		/* pt_regs pointer */
	xorl %esi,%esi		/* no error code */
	PER_CPU(init_tss, %r12)
	subq $EXCEPTION_STKSZ, TSS_ist + (\ist - 1) * 8(%r12)
	subq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist)
	call \do_sym
	addq $EXCEPTION_STKSZ, TSS_ist + (\ist - 1) * 8(%r12)
	addq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist)
	jmp paranoid_exit	/* %ebx: no swapgs flag */
	CFI_ENDPROC
END(\sym)