lkml.org 
[lkml]   [2018]   [Mar]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 35/76] retpoline: Introduce start/end markers of indirect thunk
    3.16.56-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Masami Hiramatsu <mhiramat@kernel.org>

    commit 736e80a4213e9bbce40a7c050337047128b472ac upstream.

    Introduce start/end markers of __x86_indirect_thunk_* functions.
    To make it easy, consolidate .text.__x86.indirect_thunk.* sections
    to one .text.__x86.indirect_thunk section and put it in the
    end of kernel text section and adds __indirect_thunk_start/end
    so that other subsystem (e.g. kprobes) can identify it.

    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: David Woodhouse <dwmw@amazon.co.uk>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
    Cc: Arjan van de Ven <arjan@linux.intel.com>
    Cc: Greg Kroah-Hartman <gregkh@linux-foundation.org>
    Link: https://lkml.kernel.org/r/151629206178.10241.6828804696410044771.stgit@devbox
    [bwh: Backported to 3.16: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    arch/x86/include/asm/nospec-branch.h | 3 +++
    arch/x86/kernel/vmlinux.lds.S | 6 ++++++
    arch/x86/lib/retpoline.S | 2 +-
    3 files changed, 10 insertions(+), 1 deletion(-)

    --- a/arch/x86/include/asm/nospec-branch.h
    +++ b/arch/x86/include/asm/nospec-branch.h
    @@ -171,6 +171,9 @@ enum spectre_v2_mitigation {
    SPECTRE_V2_IBRS,
    };

    +extern char __indirect_thunk_start[];
    +extern char __indirect_thunk_end[];
    +
    /*
    * On VMEXIT we must ensure that no RSB predictions learned in the guest
    * can be followed in the host, by overwriting the RSB completely. Both
    --- a/arch/x86/kernel/vmlinux.lds.S
    +++ b/arch/x86/kernel/vmlinux.lds.S
    @@ -104,6 +104,12 @@ SECTIONS
    IRQENTRY_TEXT
    *(.fixup)
    *(.gnu.warning)
    +#ifdef CONFIG_RETPOLINE
    + __indirect_thunk_start = .;
    + *(.text.__x86.indirect_thunk)
    + __indirect_thunk_end = .;
    +#endif
    +
    /* End of text section */
    _etext = .;
    } :text = 0x9090
    --- a/arch/x86/lib/retpoline.S
    +++ b/arch/x86/lib/retpoline.S
    @@ -8,7 +8,7 @@
    #include <asm/nospec-branch.h>

    .macro THUNK reg
    - .section .text.__x86.indirect_thunk.\reg
    + .section .text.__x86.indirect_thunk

    ENTRY(__x86_indirect_thunk_\reg)
    CFI_STARTPROC
    \
     
     \ /
      Last update: 2018-03-12 04:36    [W:2.531 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site