Commit e2dcb5f1 authored by Thomas Gleixner's avatar Thomas Gleixner

x86/entry: Remove the transition leftovers

Now that all exceptions are converted over the sane flag is not longer
needed. Also the vector argument of idtentry_body on 64-bit is pointless
now.
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
Acked-by: default avatarAndy Lutomirski <luto@kernel.org>
Link: https://lore.kernel.org/r/20200521202118.331115895@linutronix.de
parent 91eeafea
...@@ -734,9 +734,8 @@ ...@@ -734,9 +734,8 @@
* @asmsym: ASM symbol for the entry point * @asmsym: ASM symbol for the entry point
* @cfunc: C function to be called * @cfunc: C function to be called
* @has_error_code: Hardware pushed error code on stack * @has_error_code: Hardware pushed error code on stack
* @sane: Compatibility flag with 64bit
*/ */
.macro idtentry vector asmsym cfunc has_error_code:req sane=0 .macro idtentry vector asmsym cfunc has_error_code:req
SYM_CODE_START(\asmsym) SYM_CODE_START(\asmsym)
ASM_CLAC ASM_CLAC
cld cld
......
...@@ -496,27 +496,14 @@ SYM_CODE_END(spurious_entries_start) ...@@ -496,27 +496,14 @@ SYM_CODE_END(spurious_entries_start)
/** /**
* idtentry_body - Macro to emit code calling the C function * idtentry_body - Macro to emit code calling the C function
* @vector: Vector number
* @cfunc: C function to be called * @cfunc: C function to be called
* @has_error_code: Hardware pushed error code on stack * @has_error_code: Hardware pushed error code on stack
* @sane: Sane variant which handles irq tracing, context tracking in C
*/ */
.macro idtentry_body vector cfunc has_error_code:req sane=0 .macro idtentry_body cfunc has_error_code:req
call error_entry call error_entry
UNWIND_HINT_REGS UNWIND_HINT_REGS
.if \sane == 0
TRACE_IRQS_OFF
#ifdef CONFIG_CONTEXT_TRACKING
testb $3, CS(%rsp)
jz .Lfrom_kernel_no_ctxt_tracking_\@
CALL_enter_from_user_mode
.Lfrom_kernel_no_ctxt_tracking_\@:
#endif
.endif
movq %rsp, %rdi /* pt_regs pointer into 1st argument*/ movq %rsp, %rdi /* pt_regs pointer into 1st argument*/
.if \has_error_code == 1 .if \has_error_code == 1
...@@ -526,11 +513,7 @@ SYM_CODE_END(spurious_entries_start) ...@@ -526,11 +513,7 @@ SYM_CODE_END(spurious_entries_start)
call \cfunc call \cfunc
.if \sane == 0
jmp error_exit
.else
jmp error_return jmp error_return
.endif
.endm .endm
/** /**
...@@ -539,12 +522,11 @@ SYM_CODE_END(spurious_entries_start) ...@@ -539,12 +522,11 @@ SYM_CODE_END(spurious_entries_start)
* @asmsym: ASM symbol for the entry point * @asmsym: ASM symbol for the entry point
* @cfunc: C function to be called * @cfunc: C function to be called
* @has_error_code: Hardware pushed error code on stack * @has_error_code: Hardware pushed error code on stack
* @sane: Sane variant which handles irq tracing, context tracking in C
* *
* The macro emits code to set up the kernel context for straight forward * The macro emits code to set up the kernel context for straight forward
* and simple IDT entries. No IST stack, no paranoid entry checks. * and simple IDT entries. No IST stack, no paranoid entry checks.
*/ */
.macro idtentry vector asmsym cfunc has_error_code:req sane=0 .macro idtentry vector asmsym cfunc has_error_code:req
SYM_CODE_START(\asmsym) SYM_CODE_START(\asmsym)
UNWIND_HINT_IRET_REGS offset=\has_error_code*8 UNWIND_HINT_IRET_REGS offset=\has_error_code*8
ASM_CLAC ASM_CLAC
...@@ -567,7 +549,7 @@ SYM_CODE_START(\asmsym) ...@@ -567,7 +549,7 @@ SYM_CODE_START(\asmsym)
.Lfrom_usermode_no_gap_\@: .Lfrom_usermode_no_gap_\@:
.endif .endif
idtentry_body \vector \cfunc \has_error_code \sane idtentry_body \cfunc \has_error_code
_ASM_NOKPROBE(\asmsym) _ASM_NOKPROBE(\asmsym)
SYM_CODE_END(\asmsym) SYM_CODE_END(\asmsym)
...@@ -642,7 +624,7 @@ SYM_CODE_START(\asmsym) ...@@ -642,7 +624,7 @@ SYM_CODE_START(\asmsym)
/* Switch to the regular task stack and use the noist entry point */ /* Switch to the regular task stack and use the noist entry point */
.Lfrom_usermode_switch_stack_\@: .Lfrom_usermode_switch_stack_\@:
idtentry_body vector noist_\cfunc, has_error_code=0 sane=1 idtentry_body noist_\cfunc, has_error_code=0
_ASM_NOKPROBE(\asmsym) _ASM_NOKPROBE(\asmsym)
SYM_CODE_END(\asmsym) SYM_CODE_END(\asmsym)
......
...@@ -298,10 +298,10 @@ __visible noinstr void func(struct pt_regs *regs, \ ...@@ -298,10 +298,10 @@ __visible noinstr void func(struct pt_regs *regs, \
* The ASM variants for DECLARE_IDTENTRY*() which emit the ASM entry stubs. * The ASM variants for DECLARE_IDTENTRY*() which emit the ASM entry stubs.
*/ */
#define DECLARE_IDTENTRY(vector, func) \ #define DECLARE_IDTENTRY(vector, func) \
idtentry vector asm_##func func has_error_code=0 sane=1 idtentry vector asm_##func func has_error_code=0
#define DECLARE_IDTENTRY_ERRORCODE(vector, func) \ #define DECLARE_IDTENTRY_ERRORCODE(vector, func) \
idtentry vector asm_##func func has_error_code=1 sane=1 idtentry vector asm_##func func has_error_code=1
/* Special case for 32bit IRET 'trap'. Do not emit ASM code */ /* Special case for 32bit IRET 'trap'. Do not emit ASM code */
#define DECLARE_IDTENTRY_SW(vector, func) #define DECLARE_IDTENTRY_SW(vector, func)
...@@ -345,7 +345,7 @@ __visible noinstr void func(struct pt_regs *regs, \ ...@@ -345,7 +345,7 @@ __visible noinstr void func(struct pt_regs *regs, \
/* XEN NMI and DB wrapper */ /* XEN NMI and DB wrapper */
#define DECLARE_IDTENTRY_XEN(vector, func) \ #define DECLARE_IDTENTRY_XEN(vector, func) \
idtentry vector asm_exc_xen##func exc_##func has_error_code=0 sane=1 idtentry vector asm_exc_xen##func exc_##func has_error_code=0
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment