numam-dpdk/lib/librte_bpf
Konstantin Ananyev 64ac6feb82 bpf: fix pseudo calls for program loaded from ELF
clang 6.0 and onwards, for the external function call generates
BPF_PSEUDO_CALL instruction:
call pseudo +-off -> call another bpf function.
More details about that change: https://lwn.net/Articles/741773/
DPDK BPF implementation right now doesn't support multiple BPF
functions per module.
To overcome that problem, and preserve existing functionality
(ability to call allowed by user external functions),
bpf_elf_load() clears EBPF_PSEUDO_CALL value.
For details how to reproduce the issue:
https://bugs.dpdk.org/show_bug.cgi?id=259

Fixes: 5dba93ae5f ("bpf: add ability to load eBPF program from ELF object file")
Cc: stable@dpdk.org

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2019-06-05 18:34:56 +02:00
..
bpf_def.h bpf: fix pseudo calls for program loaded from ELF 2019-06-05 18:34:56 +02:00
bpf_exec.c bpf: add extra information for external symbol definitions 2018-07-12 09:37:16 +02:00
bpf_impl.h bpf: add extra information for external symbol definitions 2018-07-12 09:37:16 +02:00
bpf_jit_x86.c bpf: fix x86 JIT for immediate loads 2018-11-13 23:18:53 +01:00
bpf_load_elf.c bpf: fix pseudo calls for program loaded from ELF 2019-06-05 18:34:56 +02:00
bpf_load.c bpf: remove use of weak functions 2019-06-05 16:28:20 +02:00
bpf_pkt.c bpf: introduce basic Rx/Tx filters 2018-05-12 00:36:34 +02:00
bpf_validate.c bpf: add extra validation for input BPF program 2018-07-12 09:40:27 +02:00
bpf.c remove useless constructor headers 2018-07-12 00:00:35 +02:00
Makefile bpf: introduce basic Rx/Tx filters 2018-05-12 00:36:34 +02:00
meson.build bpf: remove use of weak functions 2019-06-05 16:28:20 +02:00
rte_bpf_ethdev.h doc: fix spelling reported by aspell in comments 2019-05-03 00:38:14 +02:00
rte_bpf_version.map bpf: introduce basic Rx/Tx filters 2018-05-12 00:36:34 +02:00
rte_bpf.h bpf: fix pseudo calls for program loaded from ELF 2019-06-05 18:34:56 +02:00