From: Mathieu Desnoyers Date: Wed, 15 Jun 2016 18:39:41 +0000 (-0400) Subject: Fix: annotate bytecode interpreter for kernel stack validator X-Git-Tag: v2.8.1~20 X-Git-Url: http://git.lttng.org./?a=commitdiff_plain;h=acf0bdf5f001188f079209e7a32015b39453d95b;hp=acf0bdf5f001188f079209e7a32015b39453d95b;p=lttng-modules.git Fix: annotate bytecode interpreter for kernel stack validator With gcc 6.1.1, kernel 4.6, with CONFIG_STACK_VALIDATION=y, building lttng-modules master at commit 6c09dd94 gives this warning: lttng-modules/lttng-filter-interpreter.o: warning: objtool: lttng_filter_interpret_bytecode()+0x58: sibling call from callable instruction with changed frame pointer This object implements a bytecode interpreter using an explicit jump table. If we define "INTERPRETER_USE_SWITCH" at the top of the file, thus using the switch-case fallback implementation, the warning vanishes. We use an explicit jump table rather than a switch case whenever possible for performance reasons. Unfortunately objtool doesn't know how to validate this type of jump table. So to avoid the warning we need to add an annotation to tell objtool to ignore it. Kernel developers has to annotate __bpf_prog_run() in the kernel for the same reason. Signed-off-by: Mathieu Desnoyers ---