bpf: Implement get_current_task_btf and RET_PTR_TO_BTF_ID
authorKP Singh <kpsingh@google.com>
Fri, 6 Nov 2020 10:37:43 +0000 (10:37 +0000)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 6 Nov 2020 16:08:37 +0000 (08:08 -0800)
commit3ca1032ab7ab010eccb107aa515598788f7d93bb
treee09a5bff5dfa40b270ce5fe937ec1e0a9af7ff45
parent864ab0616dccf14e51618a24acc7cf23ddd2b98a
bpf: Implement get_current_task_btf and RET_PTR_TO_BTF_ID

The currently available bpf_get_current_task returns an unsigned integer
which can be used along with BPF_CORE_READ to read data from
the task_struct but still cannot be used as an input argument to a
helper that accepts an ARG_PTR_TO_BTF_ID of type task_struct.

In order to implement this helper a new return type, RET_PTR_TO_BTF_ID,
is added. This is similar to RET_PTR_TO_BTF_ID_OR_NULL but does not
require checking the nullness of returned pointer.

Signed-off-by: KP Singh <kpsingh@google.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Song Liu <songliubraving@fb.com>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Link: https://lore.kernel.org/bpf/20201106103747.2780972-6-kpsingh@chromium.org
include/linux/bpf.h
include/uapi/linux/bpf.h
kernel/bpf/verifier.c
kernel/trace/bpf_trace.c
tools/include/uapi/linux/bpf.h