x86/entry/32: Remove leftover macros after stackprotector cleanups
Now that nonlazy-GS mode is gone, remove the macros from entry_32.S that obfuscated^Wabstracted GS handling. The assembled output is identical before and after this patch. Signed-off-by: Andy Lutomirski <luto@kernel.org> Signed-off-by: Borislav Petkov <bp@suse.de> Link: https://lkml.kernel.org/r/b1543116f0f0e68f1763d90d5f7fcec27885dff5.1613243844.git.luto@kernel.org
This commit is contained in:
parent
3fb0fdb3bb
commit
d0962f2b24
|
@ -53,35 +53,6 @@
|
|||
|
||||
#define PTI_SWITCH_MASK (1 << PAGE_SHIFT)
|
||||
|
||||
/*
|
||||
* User gs save/restore
|
||||
*
|
||||
* This is leftover junk from CONFIG_X86_32_LAZY_GS. A subsequent patch
|
||||
* will remove it entirely.
|
||||
*/
|
||||
/* unfortunately push/pop can't be no-op */
|
||||
.macro PUSH_GS
|
||||
pushl $0
|
||||
.endm
|
||||
.macro POP_GS pop=0
|
||||
addl $(4 + \pop), %esp
|
||||
.endm
|
||||
.macro POP_GS_EX
|
||||
.endm
|
||||
|
||||
/* all the rest are no-op */
|
||||
.macro PTGS_TO_GS
|
||||
.endm
|
||||
.macro PTGS_TO_GS_EX
|
||||
.endm
|
||||
.macro GS_TO_REG reg
|
||||
.endm
|
||||
.macro REG_TO_PTGS reg
|
||||
.endm
|
||||
.macro SET_KERNEL_GS reg
|
||||
.endm
|
||||
|
||||
|
||||
/* Unconditionally switch to user cr3 */
|
||||
.macro SWITCH_TO_USER_CR3 scratch_reg:req
|
||||
ALTERNATIVE "jmp .Lend_\@", "", X86_FEATURE_PTI
|
||||
|
@ -234,7 +205,7 @@
|
|||
.macro SAVE_ALL pt_regs_ax=%eax switch_stacks=0 skip_gs=0 unwind_espfix=0
|
||||
cld
|
||||
.if \skip_gs == 0
|
||||
PUSH_GS
|
||||
pushl $0
|
||||
.endif
|
||||
pushl %fs
|
||||
|
||||
|
@ -259,9 +230,6 @@
|
|||
movl $(__USER_DS), %edx
|
||||
movl %edx, %ds
|
||||
movl %edx, %es
|
||||
.if \skip_gs == 0
|
||||
SET_KERNEL_GS %edx
|
||||
.endif
|
||||
/* Switch to kernel stack if necessary */
|
||||
.if \switch_stacks > 0
|
||||
SWITCH_TO_KERNEL_STACK
|
||||
|
@ -300,7 +268,7 @@
|
|||
1: popl %ds
|
||||
2: popl %es
|
||||
3: popl %fs
|
||||
POP_GS \pop
|
||||
addl $(4 + \pop), %esp /* pop the unused "gs" slot */
|
||||
IRET_FRAME
|
||||
.pushsection .fixup, "ax"
|
||||
4: movl $0, (%esp)
|
||||
|
@ -313,7 +281,6 @@
|
|||
_ASM_EXTABLE(1b, 4b)
|
||||
_ASM_EXTABLE(2b, 5b)
|
||||
_ASM_EXTABLE(3b, 6b)
|
||||
POP_GS_EX
|
||||
.endm
|
||||
|
||||
.macro RESTORE_ALL_NMI cr3_reg:req pop=0
|
||||
|
@ -928,7 +895,6 @@ SYM_FUNC_START(entry_SYSENTER_32)
|
|||
movl PT_EIP(%esp), %edx /* pt_regs->ip */
|
||||
movl PT_OLDESP(%esp), %ecx /* pt_regs->sp */
|
||||
1: mov PT_FS(%esp), %fs
|
||||
PTGS_TO_GS
|
||||
|
||||
popl %ebx /* pt_regs->bx */
|
||||
addl $2*4, %esp /* skip pt_regs->cx and pt_regs->dx */
|
||||
|
@ -964,7 +930,6 @@ SYM_FUNC_START(entry_SYSENTER_32)
|
|||
jmp 1b
|
||||
.popsection
|
||||
_ASM_EXTABLE(1b, 2b)
|
||||
PTGS_TO_GS_EX
|
||||
|
||||
.Lsysenter_fix_flags:
|
||||
pushl $X86_EFLAGS_FIXED
|
||||
|
@ -1106,11 +1071,7 @@ SYM_CODE_START_LOCAL_NOALIGN(handle_exception)
|
|||
SAVE_ALL switch_stacks=1 skip_gs=1 unwind_espfix=1
|
||||
ENCODE_FRAME_POINTER
|
||||
|
||||
/* fixup %gs */
|
||||
GS_TO_REG %ecx
|
||||
movl PT_GS(%esp), %edi # get the function address
|
||||
REG_TO_PTGS %ecx
|
||||
SET_KERNEL_GS %ecx
|
||||
|
||||
/* fixup orig %eax */
|
||||
movl PT_ORIG_EAX(%esp), %edx # get the error code
|
||||
|
|
Loading…
Reference in New Issue