]> git.baikalelectronics.ru Git - kernel.git/commit
bpf: Fix ORC unwinding in non-JIT BPF code
authorJosh Poimboeuf <jpoimboe@redhat.com>
Fri, 28 Jun 2019 01:50:47 +0000 (20:50 -0500)
committerIngo Molnar <mingo@kernel.org>
Tue, 9 Jul 2019 11:55:57 +0000 (13:55 +0200)
commit5c45a9494ad780b6cc50c2e18f0b1ee2e9280095
tree21432129e0710aaccf5ce555bfdd5f12c1131167
parenta47c5dfd86c90ddff699986ea9933eda84d9c4b9
bpf: Fix ORC unwinding in non-JIT BPF code

Objtool previously ignored ___bpf_prog_run() because it didn't understand
the jump table.  This resulted in the ORC unwinder not being able to unwind
through non-JIT BPF code.

Now that objtool knows how to read jump tables, remove the whitelist and
annotate the jump table so objtool can recognize it.

Also add an additional "const" to the jump table definition to clarify that
the text pointers are constant.  Otherwise GCC sets the section writable
flag and the assembler spits out warnings.

Fixes: bf2d1d6986ac ("perf/x86: Make perf callchains work without CONFIG_FRAME_POINTER")
Reported-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Kairui Song <kasong@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lkml.kernel.org/r/881939122b88f32be4c374d248c09d7527a87e35.1561685471.git.jpoimboe@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/bpf/core.c