lkml.org 
[lkml]   [2018]   [Apr]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 46/74] s390: correct module section names for expoline code revert
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

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

    From: Martin Schwidefsky <schwidefsky@de.ibm.com>


    [ Upstream commit 6cf09958f32b9667bb3ebadf74367c791112771b ]

    The main linker script vmlinux.lds.S for the kernel image merges
    the expoline code patch tables into two section ".nospec_call_table"
    and ".nospec_return_table". This is *not* done for the modules,
    there the sections retain their original names as generated by gcc:
    ".s390_indirect_call", ".s390_return_mem" and ".s390_return_reg".

    The module_finalize code has to check for the compiler generated
    section names, otherwise no code patching is done. This slows down
    the module code in case of "spectre_v2=off".

    Cc: stable@vger.kernel.org # 4.16
    Fixes: f19fbd5ed6 ("s390: introduce execute-trampolines for branches")
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    arch/s390/kernel/module.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/arch/s390/kernel/module.c
    +++ b/arch/s390/kernel/module.c
    @@ -477,11 +477,11 @@ int module_finalize(const Elf_Ehdr *hdr,
    apply_alternatives(aseg, aseg + s->sh_size);

    if (IS_ENABLED(CONFIG_EXPOLINE) &&
    - (!strcmp(".nospec_call_table", secname)))
    + (!strncmp(".s390_indirect", secname, 14)))
    nospec_revert(aseg, aseg + s->sh_size);

    if (IS_ENABLED(CONFIG_EXPOLINE) &&
    - (!strcmp(".nospec_return_table", secname)))
    + (!strncmp(".s390_return", secname, 12)))
    nospec_revert(aseg, aseg + s->sh_size);
    }


    \
     
     \ /
      Last update: 2018-04-27 17:09    [W:2.650 / U:0.488 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site