]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commit
x86/unwind/orc: Detect the end of the stack
authorJosh Poimboeuf <jpoimboe@redhat.com>
Fri, 18 May 2018 06:47:12 +0000 (08:47 +0200)
committerIngo Molnar <mingo@kernel.org>
Thu, 21 Jun 2018 14:34:56 +0000 (16:34 +0200)
commitd31a580266eeb1f355df90fde8a71f480e30ad70
treecd4bbc37279a4f72257c8338c4051a441239d570
parent0c414367c04eeb00c3ebfee0b74c9e7f3b95fd62
x86/unwind/orc: Detect the end of the stack

The existing UNWIND_HINT_EMPTY annotations happen to be good indicators
of where entry code calls into C code for the first time.  So also use
them to mark the end of the stack for the ORC unwinder.

Use that information to set unwind->error if the ORC unwinder doesn't
unwind all the way to the end.  This will be needed for enabling
HAVE_RELIABLE_STACKTRACE for the ORC unwinder so we can use it with the
livepatch consistency model.

Thanks to Jiri Slaby for teaching the ORCs about the unwind hints.

Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/lkml/20180518064713.26440-5-jslaby@suse.cz
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/entry/entry_64.S
arch/x86/include/asm/orc_types.h
arch/x86/include/asm/unwind_hints.h
arch/x86/kernel/unwind_orc.c
tools/objtool/arch/x86/include/asm/orc_types.h
tools/objtool/check.c
tools/objtool/check.h
tools/objtool/orc_dump.c
tools/objtool/orc_gen.c