summaryrefslogtreecommitdiff
path: root/tools/objtool/elf.c
diff options
context:
space:
mode:
authorJosh Poimboeuf <jpoimboe@redhat.com>2019-07-18 04:36:47 +0300
committerThomas Gleixner <tglx@linutronix.de>2019-07-18 22:01:07 +0300
commitc705cecc8431951b4f34178e6b1db51b4a504c43 (patch)
treeab0c4bca0040ad0a59879bc0953f1babee4279d3 /tools/objtool/elf.c
parenta7e47f26039c26312a4144c3001b4e9fa886bd45 (diff)
downloadlinux-c705cecc8431951b4f34178e6b1db51b4a504c43.tar.xz
objtool: Track original function across branches
If 'insn->func' is NULL, objtool skips some important checks, including sibling call validation. So if some .fixup code does an invalid sibling call, objtool ignores it. Treat all code branches (including alts) as part of the original function by keeping track of the original func value from validate_functions(). This improves the usefulness of some clang function fallthrough warnings, and exposes some additional kernel bugs in the process. Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Nick Desaulniers <ndesaulniers@google.com> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lkml.kernel.org/r/505df630f33c9717e1ccde6e4b64c5303135c25f.1563413318.git.jpoimboe@redhat.com
Diffstat (limited to 'tools/objtool/elf.c')
0 files changed, 0 insertions, 0 deletions