lkml.org 
[lkml]   [2018]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:x86/pti] x86/retpoline: Temporarily disable objtool when CONFIG_RETPOLINE=y
    Commit-ID:  304a3574e8e36b673bb0b77b1ca8aaddfa31ccf0
    Gitweb: https://git.kernel.org/tip/304a3574e8e36b673bb0b77b1ca8aaddfa31ccf0
    Author: Andi Kleen <ak@linux.intel.com>
    AuthorDate: Tue, 9 Jan 2018 14:43:08 +0000
    Committer: Thomas Gleixner <tglx@linutronix.de>
    CommitDate: Wed, 10 Jan 2018 19:09:09 +0100

    x86/retpoline: Temporarily disable objtool when CONFIG_RETPOLINE=y

    objtool's assembler currently cannot deal with the code generated by the
    retpoline compiler and throws hundreds of warnings, mostly because it sees
    calls that don't have a symbolic target.

    Exclude all the options that rely on objtool when RETPOLINE is active.

    This mainly means that the kernel has to fallback to use the frame pointer
    unwinder and livepatch is not supported.

    Josh is looking into resolving the issue.

    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Arjan van de Ven <arjan@linux.intel.com>
    Acked-by: Ingo Molnar <mingo@kernel.org>
    Cc: gnomes@lxorguk.ukuu.org.uk
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Jiri Kosina <jikos@kernel.org>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Kees Cook <keescook@google.com>
    Cc: Tim Chen <tim.c.chen@linux.intel.com>
    Cc: Greg Kroah-Hartman <gregkh@linux-foundation.org>
    Cc: Paul Turner <pjt@google.com>
    Link: https://lkml.kernel.org/r/1515508997-6154-3-git-send-email-dwmw@amazon.co.uk


    ---
    arch/x86/Kconfig | 4 ++--
    arch/x86/Kconfig.debug | 6 +++---
    2 files changed, 5 insertions(+), 5 deletions(-)

    diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
    index d181916..abeac4b 100644
    --- a/arch/x86/Kconfig
    +++ b/arch/x86/Kconfig
    @@ -172,8 +172,8 @@ config X86
    select HAVE_PERF_USER_STACK_DUMP
    select HAVE_RCU_TABLE_FREE
    select HAVE_REGS_AND_STACK_ACCESS_API
    - select HAVE_RELIABLE_STACKTRACE if X86_64 && UNWINDER_FRAME_POINTER && STACK_VALIDATION
    - select HAVE_STACK_VALIDATION if X86_64
    + select HAVE_RELIABLE_STACKTRACE if X86_64 && UNWINDER_FRAME_POINTER && STACK_VALIDATION && !RETPOLINE
    + select HAVE_STACK_VALIDATION if X86_64 && !RETPOLINE
    select HAVE_SYSCALL_TRACEPOINTS
    select HAVE_UNSTABLE_SCHED_CLOCK
    select HAVE_USER_RETURN_NOTIFIER
    diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
    index 6293a87..9f3928d 100644
    --- a/arch/x86/Kconfig.debug
    +++ b/arch/x86/Kconfig.debug
    @@ -359,8 +359,8 @@ config PUNIT_ATOM_DEBUG

    choice
    prompt "Choose kernel unwinder"
    - default UNWINDER_ORC if X86_64
    - default UNWINDER_FRAME_POINTER if X86_32
    + default UNWINDER_ORC if X86_64 && !RETPOLINE
    + default UNWINDER_FRAME_POINTER if X86_32 || RETPOLINE
    ---help---
    This determines which method will be used for unwinding kernel stack
    traces for panics, oopses, bugs, warnings, perf, /proc/<pid>/stack,
    @@ -368,7 +368,7 @@ choice

    config UNWINDER_ORC
    bool "ORC unwinder"
    - depends on X86_64
    + depends on X86_64 && !RETPOLINE
    select STACK_VALIDATION
    ---help---
    This option enables the ORC (Oops Rewind Capability) unwinder for
    \
     
     \ /
      Last update: 2018-01-14 23:21    [W:3.597 / U:0.280 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site