lkml.org 
[lkml]   [2020]   [May]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch V6 14/37] 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: Thomas Gleixner <tglx@linutronix.de>

    diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
    index 3c3ca6fbe58e..dd8064ffdf12 100644
    --- a/arch/x86/entry/entry_32.S
    +++ b/arch/x86/entry/entry_32.S
    @@ -734,9 +734,8 @@
    * @asmsym: ASM symbol for the entry point
    * @cfunc: C function to be called
    * @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)
    ASM_CLAC
    cld
    diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
    index e061c48d0ae2..1157d63b3682 100644
    --- a/arch/x86/entry/entry_64.S
    +++ b/arch/x86/entry/entry_64.S
    @@ -496,27 +496,14 @@ SYM_CODE_END(spurious_entries_start)

    /**
    * idtentry_body - Macro to emit code calling the C function
    - * @vector: Vector number
    * @cfunc: C function to be called
    * @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
    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*/

    .if \has_error_code == 1
    @@ -526,11 +513,7 @@ SYM_CODE_END(spurious_entries_start)

    call \cfunc

    - .if \sane == 0
    - jmp error_exit
    - .else
    jmp error_return
    - .endif
    .endm

    /**
    @@ -539,12 +522,11 @@ SYM_CODE_END(spurious_entries_start)
    * @asmsym: ASM symbol for the entry point
    * @cfunc: C function to be called
    * @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
    * 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)
    UNWIND_HINT_IRET_REGS offset=\has_error_code*8
    ASM_CLAC
    @@ -567,7 +549,7 @@ SYM_CODE_START(\asmsym)
    .Lfrom_usermode_no_gap_\@:
    .endif

    - idtentry_body \vector \cfunc \has_error_code \sane
    + idtentry_body \cfunc \has_error_code

    _ASM_NOKPROBE(\asmsym)
    SYM_CODE_END(\asmsym)
    @@ -642,7 +624,7 @@ SYM_CODE_START(\asmsym)

    /* Switch to the regular task stack and use the noist entry point */
    .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)
    SYM_CODE_END(\asmsym)
    diff --git a/arch/x86/include/asm/idtentry.h b/arch/x86/include/asm/idtentry.h
    index 4e4975df7ce0..3c239db60d7b 100644
    --- a/arch/x86/include/asm/idtentry.h
    +++ b/arch/x86/include/asm/idtentry.h
    @@ -281,10 +281,10 @@ __visible noinstr void func(struct pt_regs *regs, \
    * The ASM variants for DECLARE_IDTENTRY*() which emit the ASM entry stubs.
    */
    #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) \
    - 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 */
    #define DECLARE_IDTENTRY_SW(vector, func)
    @@ -322,7 +322,7 @@ __visible noinstr void func(struct pt_regs *regs, \

    /* XEN NMI and DB wrapper */
    #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__ */

    \
     
     \ /
      Last update: 2020-05-16 02:13    [W:4.066 / U:1.196 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site