lkml.org 
[lkml]   [2020]   [Jul]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch V4 12/15] x86/entry: Cleanup idtentry_entry/exit_user
    Cleanup the temporary defines and use irqentry_ instead of idtentry_.

    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    ---
    arch/x86/include/asm/idtentry.h | 4 ----
    arch/x86/kernel/cpu/mce/core.c | 4 ++--
    arch/x86/kernel/traps.c | 18 +++++++++---------
    3 files changed, 11 insertions(+), 15 deletions(-)

    --- a/arch/x86/include/asm/idtentry.h
    +++ b/arch/x86/include/asm/idtentry.h
    @@ -11,10 +11,6 @@

    #include <asm/irq_stack.h>

    -/* Temporary define */
    -#define idtentry_enter_user irqentry_enter_from_user_mode
    -#define idtentry_exit_user irqentry_exit_to_user_mode
    -
    typedef struct idtentry_state {
    bool exit_rcu;
    } idtentry_state_t;
    --- a/arch/x86/kernel/cpu/mce/core.c
    +++ b/arch/x86/kernel/cpu/mce/core.c
    @@ -1927,11 +1927,11 @@ static __always_inline void exc_machine_

    static __always_inline void exc_machine_check_user(struct pt_regs *regs)
    {
    - idtentry_enter_user(regs);
    + irqentry_enter_from_user_mode(regs);
    instrumentation_begin();
    machine_check_vector(regs);
    instrumentation_end();
    - idtentry_exit_user(regs);
    + irqentry_exit_to_user_mode(regs);
    }

    #ifdef CONFIG_X86_64
    --- a/arch/x86/kernel/traps.c
    +++ b/arch/x86/kernel/traps.c
    @@ -638,18 +638,18 @@ DEFINE_IDTENTRY_RAW(exc_int3)
    return;

    /*
    - * idtentry_enter_user() uses static_branch_{,un}likely() and therefore
    - * can trigger INT3, hence poke_int3_handler() must be done
    - * before. If the entry came from kernel mode, then use nmi_enter()
    - * because the INT3 could have been hit in any context including
    - * NMI.
    + * irqentry_enter_from_user_mode() uses static_branch_{,un}likely()
    + * and therefore can trigger INT3, hence poke_int3_handler() must
    + * be done before. If the entry came from kernel mode, then use
    + * nmi_enter() because the INT3 could have been hit in any context
    + * including NMI.
    */
    if (user_mode(regs)) {
    - idtentry_enter_user(regs);
    + irqentry_enter_from_user_mode(regs);
    instrumentation_begin();
    do_int3_user(regs);
    instrumentation_end();
    - idtentry_exit_user(regs);
    + irqentry_exit_to_user_mode(regs);
    } else {
    nmi_enter();
    instrumentation_begin();
    @@ -901,12 +901,12 @@ static __always_inline void exc_debug_us
    */
    WARN_ON_ONCE(!user_mode(regs));

    - idtentry_enter_user(regs);
    + irqentry_enter_from_user_mode(regs);
    instrumentation_begin();

    handle_debug(regs, dr6, true);
    instrumentation_end();
    - idtentry_exit_user(regs);
    + irqentry_exit_to_user_mode(regs);
    }

    #ifdef CONFIG_X86_64

    \
     
     \ /
      Last update: 2020-07-21 13:10    [W:4.535 / U:0.164 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site