lkml.org 
[lkml]   [2022]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 081/130] x86/retpoline: Swizzle retpoline thunk
    Date
    From: Peter Zijlstra <peterz@infradead.org>

    commit 00e1533325fd1fb5459229fe37f235462649f668 upstream.

    Put the actual retpoline thunk as the original code so that it can
    become more complicated. Specifically, it allows RET to be a JMP,
    which can't be .altinstr_replacement since that doesn't do relocations
    (except for the very first instruction).

    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Reviewed-by: Borislav Petkov <bp@suse.de>
    Reviewed-by: Josh Poimboeuf <jpoimboe@kernel.org>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    arch/x86/lib/retpoline.S | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    --- a/arch/x86/lib/retpoline.S
    +++ b/arch/x86/lib/retpoline.S
    @@ -32,9 +32,9 @@
    SYM_INNER_LABEL(__x86_indirect_thunk_\reg, SYM_L_GLOBAL)
    UNWIND_HINT_EMPTY

    - ALTERNATIVE_2 __stringify(ANNOTATE_RETPOLINE_SAFE; jmp *%\reg), \
    - __stringify(RETPOLINE \reg), X86_FEATURE_RETPOLINE, \
    - __stringify(lfence; ANNOTATE_RETPOLINE_SAFE; jmp *%\reg; int3), X86_FEATURE_RETPOLINE_LFENCE
    + ALTERNATIVE_2 __stringify(RETPOLINE \reg), \
    + __stringify(lfence; ANNOTATE_RETPOLINE_SAFE; jmp *%\reg; int3), X86_FEATURE_RETPOLINE_LFENCE, \
    + __stringify(ANNOTATE_RETPOLINE_SAFE; jmp *%\reg), ALT_NOT(X86_FEATURE_RETPOLINE)

    .endm


    \
     
     \ /
      Last update: 2022-07-12 20:55    [W:7.871 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site