bpf: Resolve BTF IDs in vmlinux image
Using BTF_ID_LIST macro to define lists for several helpers using BTF arguments. And running resolve_btfids on vmlinux elf object during linking, so the .BTF_ids section gets the IDs resolved. Signed-off-by: Jiri Olsa <jolsa@kernel.org> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Tested-by: Andrii Nakryiko <andriin@fb.com> Acked-by: Andrii Nakryiko <andriin@fb.com> Link: https://lore.kernel.org/bpf/20200711215329.41165-5-jolsa@kernel.org
This commit is contained in:

gecommit door
Alexei Starovoitov

bovenliggende
5a2798ab32
commit
c9a0f3b85e
@@ -13,6 +13,7 @@
|
||||
#include <linux/kprobes.h>
|
||||
#include <linux/syscalls.h>
|
||||
#include <linux/error-injection.h>
|
||||
#include <linux/btf_ids.h>
|
||||
|
||||
#include <asm/tlb.h>
|
||||
|
||||
@@ -710,7 +711,9 @@ out:
|
||||
return err;
|
||||
}
|
||||
|
||||
static int bpf_seq_printf_btf_ids[5];
|
||||
BTF_ID_LIST(bpf_seq_printf_btf_ids)
|
||||
BTF_ID(struct, seq_file)
|
||||
|
||||
static const struct bpf_func_proto bpf_seq_printf_proto = {
|
||||
.func = bpf_seq_printf,
|
||||
.gpl_only = true,
|
||||
@@ -728,7 +731,9 @@ BPF_CALL_3(bpf_seq_write, struct seq_file *, m, const void *, data, u32, len)
|
||||
return seq_write(m, data, len) ? -EOVERFLOW : 0;
|
||||
}
|
||||
|
||||
static int bpf_seq_write_btf_ids[5];
|
||||
BTF_ID_LIST(bpf_seq_write_btf_ids)
|
||||
BTF_ID(struct, seq_file)
|
||||
|
||||
static const struct bpf_func_proto bpf_seq_write_proto = {
|
||||
.func = bpf_seq_write,
|
||||
.gpl_only = true,
|
||||
|
Verwijs in nieuw issue
Block a user