]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commit - kernel/bpf/verifier.c
bpf: Prepare btf_ctx_access for non raw_tp use case
authorMartin KaFai Lau <kafai@fb.com>
Fri, 25 Oct 2019 00:18:11 +0000 (17:18 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 25 Oct 2019 01:41:08 +0000 (18:41 -0700)
commit3820729160440158a014add69cc0d371061a96b2
treebc5c31e1c4068ffc5748ac1ed1470aebeac9cfe2
parent58eeb2289ab9bd8acad41a589431bbdbf7622595
bpf: Prepare btf_ctx_access for non raw_tp use case

This patch makes a few changes to btf_ctx_access() to prepare
it for non raw_tp use case where the attach_btf_id is not
necessary a BTF_KIND_TYPEDEF.

It moves the "btf_trace_" prefix check and typedef-follow logic to a new
function "check_attach_btf_id()" which is called only once during
bpf_check().  btf_ctx_access() only operates on a BTF_KIND_FUNC_PROTO
type now. That should also be more efficient since it is done only
one instead of every-time check_ctx_access() is called.

"check_attach_btf_id()" needs to find the func_proto type from
the attach_btf_id.  It needs to store the result into the
newly added prog->aux->attach_func_proto.  func_proto
btf type has no name, so a proper name should be stored into
"attach_func_name" also.

v2:
- Move the "btf_trace_" check to an earlier verifier phase (Alexei)

Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20191025001811.1718491-1-kafai@fb.com
include/linux/bpf.h
include/linux/btf.h
kernel/bpf/btf.c
kernel/bpf/syscall.c
kernel/bpf/verifier.c
kernel/trace/bpf_trace.c