lkml.org 
[lkml]   [2021]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH V3 21/49] x86/entry: Move cld to the start of idtentry
    Date
    From: Lai Jiangshan <laijs@linux.alibaba.com>

    Make it next to CLAC

    Suggested-by: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Lai Jiangshan <laijs@linux.alibaba.com>
    ---
    arch/x86/entry/entry_64.S | 8 +++++---
    1 file changed, 5 insertions(+), 3 deletions(-)

    diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
    index 1ec87d9e685d..52a08c4a0171 100644
    --- a/arch/x86/entry/entry_64.S
    +++ b/arch/x86/entry/entry_64.S
    @@ -357,6 +357,7 @@ SYM_CODE_END(ret_from_fork)
    SYM_CODE_START(\asmsym)
    UNWIND_HINT_IRET_REGS offset=\has_error_code*8
    ASM_CLAC
    + cld

    .if \has_error_code == 0
    pushq $-1 /* ORIG_RAX: no syscall to restart */
    @@ -424,6 +425,7 @@ SYM_CODE_END(\asmsym)
    SYM_CODE_START(\asmsym)
    UNWIND_HINT_IRET_REGS
    ASM_CLAC
    + cld

    pushq $-1 /* ORIG_RAX: no syscall to restart */

    @@ -479,6 +481,7 @@ SYM_CODE_END(\asmsym)
    SYM_CODE_START(\asmsym)
    UNWIND_HINT_IRET_REGS
    ASM_CLAC
    + cld

    /*
    * If the entry is from userspace, switch stacks and treat it as
    @@ -540,6 +543,7 @@ SYM_CODE_END(\asmsym)
    SYM_CODE_START(\asmsym)
    UNWIND_HINT_IRET_REGS offset=8
    ASM_CLAC
    + cld

    /* paranoid_entry returns GS information for paranoid_exit in EBX. */
    call paranoid_entry
    @@ -852,7 +856,6 @@ SYM_CODE_END(xen_failsafe_callback)
    */
    SYM_CODE_START_LOCAL(paranoid_entry)
    UNWIND_HINT_FUNC
    - cld
    PUSH_AND_CLEAR_REGS save_ret=1
    ENCODE_FRAME_POINTER 8

    @@ -977,7 +980,6 @@ SYM_CODE_END(paranoid_exit)
    */
    SYM_CODE_START_LOCAL(error_entry)
    UNWIND_HINT_FUNC
    - cld
    testb $3, CS+8(%rsp)
    jz .Lerror_kernelspace

    @@ -1112,6 +1114,7 @@ SYM_CODE_START(asm_exc_nmi)
    */

    ASM_CLAC
    + cld

    /* Use %rdx as our temp variable throughout */
    pushq %rdx
    @@ -1131,7 +1134,6 @@ SYM_CODE_START(asm_exc_nmi)
    */

    swapgs
    - cld
    FENCE_SWAPGS_USER_ENTRY
    SWITCH_TO_KERNEL_CR3 scratch_reg=%rdx
    movq %rsp, %rdx
    --
    2.19.1.6.gb485710b
    \
     
     \ /
      Last update: 2021-10-14 05:36    [W:4.150 / U:0.160 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site