bpf: Allow struct argument in trampoline based programs
authorYonghong Song <yhs@fb.com>
Wed, 31 Aug 2022 15:26:46 +0000 (08:26 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 7 Sep 2022 02:51:14 +0000 (19:51 -0700)
commit720e6a435194fb5237833a4a7ec6aa60a78964a8
treec93447defab4fe640644d503afab8a2022315d4e
parent1e660f7ebe0ff6ac65ee0000280392d878630a67
bpf: Allow struct argument in trampoline based programs

Allow struct argument in trampoline based programs where
the struct size should be <= 16 bytes. In such cases, the argument
will be put into up to 2 registers for bpf, x86_64 and arm64
architectures.

To support arch-specific trampoline manipulation,
add arg_flags for additional struct information about arguments
in btf_func_model. Such information will be used in arch specific
function arch_prepare_bpf_trampoline() to prepare argument access
properly in trampoline.

Signed-off-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/r/20220831152646.2078089-1-yhs@fb.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
include/linux/bpf.h
kernel/bpf/btf.c