]> git.baikalelectronics.ru Git - kernel.git/commit
libbpf: Split bpf_core_apply_relo()
authorMauricio Vásquez <mauricio@kinvolk.io>
Tue, 15 Feb 2022 22:58:50 +0000 (17:58 -0500)
committerAndrii Nakryiko <andrii@kernel.org>
Wed, 16 Feb 2022 18:05:42 +0000 (10:05 -0800)
commit89da1b56454af4b9f3d605dc874fe374690a884b
treed506abeab2ce70ad77b8415d0396f9bc57b1b77d
parentf3c22c9b7b2cd7d52ae36e0b0f04d92c999d03c5
libbpf: Split bpf_core_apply_relo()

BTFGen needs to run the core relocation logic in order to understand
what are the types involved in a given relocation.

Currently bpf_core_apply_relo() calculates and **applies** a relocation
to an instruction. Having both operations in the same function makes it
difficult to only calculate the relocation without patching the
instruction. This commit splits that logic in two different phases: (1)
calculate the relocation and (2) patch the instruction.

For the first phase bpf_core_apply_relo() is renamed to
bpf_core_calc_relo_insn() who is now only on charge of calculating the
relocation, the second phase uses the already existing
bpf_core_patch_insn(). bpf_object__relocate_core() uses both of them and
the BTFGen will use only bpf_core_calc_relo_insn().

Signed-off-by: Mauricio Vásquez <mauricio@kinvolk.io>
Signed-off-by: Rafael David Tinoco <rafael.tinoco@aquasec.com>
Signed-off-by: Lorenzo Fontana <lorenzo.fontana@elastic.co>
Signed-off-by: Leonardo Di Donato <leonardo.didonato@elastic.co>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20220215225856.671072-2-mauricio@kinvolk.io
kernel/bpf/btf.c
tools/lib/bpf/libbpf.c
tools/lib/bpf/relo_core.c
tools/lib/bpf/relo_core.h