On Sun, 7 Jan 2018, David Woodhouse wrote:

Cc+ Josh Poimboeuf <jpoim...@redhat.com>

Sigh....

> From: Andi Kleen <a...@linux.intel.com>
> 
> objtool's assembler nanny 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 we use the frame pointer unwinder and livepatch
> is not supported.
> 
> Eventually objtool can be fixed to handle this.
> 
> Signed-off-by: Andi Kleen <a...@linux.intel.com>
> Signed-off-by: David Woodhouse <d...@amazon.co.uk>
> Acked-By: Arjan van de Ven <ar...@linux.intel.com>
> ---
>  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 77c58ae..651d25f 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -171,8 +171,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
> -- 
> 2.7.4
> 
> 

Reply via email to