Commit-ID:  398c0986fecc7260f4abb96e7a7e2704143af837
Gitweb:     https://git.kernel.org/tip/398c0986fecc7260f4abb96e7a7e2704143af837
Author:     Andi Kleen <a...@linux.intel.com>
AuthorDate: Tue, 9 Jan 2018 14:43:08 +0000
Committer:  Thomas Gleixner <t...@linutronix.de>
CommitDate: Wed, 10 Jan 2018 18:28:21 +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 <a...@linux.intel.com>
Signed-off-by: David Woodhouse <d...@amazon.co.uk>
Signed-off-by: Thomas Gleixner <t...@linutronix.de>
Acked-by: Arjan van de Ven <ar...@linux.intel.com>
Acked-by: Ingo Molnar <mi...@kernel.org>
Cc: gno...@lxorguk.ukuu.org.uk
Cc: Rik van Riel <r...@redhat.com>
Cc: Peter Zijlstra <pet...@infradead.org>
Cc: Linus Torvalds <torva...@linux-foundation.org>
Cc: Jiri Kosina <ji...@kernel.org>
Cc: Andy Lutomirski <l...@amacapital.net>
Cc: Dave Hansen <dave.han...@intel.com>
Cc: Kees Cook <keesc...@google.com>
Cc: Tim Chen <tim.c.c...@linux.intel.com>
Cc: Greg Kroah-Hartman <gre...@linux-foundation.org>
Cc: Paul Turner <p...@google.com>
Link: 
https://lkml.kernel.org/r/1515508997-6154-3-git-send-email-d...@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

Reply via email to