summaryrefslogtreecommitdiffstats
path: root/kernel/bpf/core.c
diff options
context:
space:
mode:
authorKumar Kartikeya Dwivedi <memxor@gmail.com>2022-11-18 07:26:02 +0530
committerAlexei Starovoitov <ast@kernel.org>2022-11-17 19:22:13 -0800
commita50388dbb328a4267c2b91ad4aefe81b08e49b2d (patch)
tree06b6dd4a73c8bcaa0ccb85102767385138fa4e84 /kernel/bpf/core.c
parent00b85860feb809852af9a88cb4ca8766d7dff6a3 (diff)
downloadlinux-stable-a50388dbb328a4267c2b91ad4aefe81b08e49b2d.tar.gz
linux-stable-a50388dbb328a4267c2b91ad4aefe81b08e49b2d.tar.bz2
linux-stable-a50388dbb328a4267c2b91ad4aefe81b08e49b2d.zip
bpf: Support constant scalar arguments for kfuncs
Allow passing known constant scalars as arguments to kfuncs that do not represent a size parameter. We use mark_chain_precision for the constant scalar argument to mark it precise. This makes the search pruning optimization of verifier more conservative for such kfunc calls, and each non-distinct argument is considered unequivalent. We will use this support to then expose a bpf_obj_new function where it takes the local type ID of a type in program BTF, and returns a PTR_TO_BTF_ID | MEM_ALLOC to the local type, and allows programs to allocate their own objects. Each type ID resolves to a distinct type with a possibly distinct size, hence the type ID constant matters in terms of program safety and its precision needs to be checked between old and cur states inside regsafe. The use of mark_chain_precision enables this. Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com> Link: https://lore.kernel.org/r/20221118015614.2013203-13-memxor@gmail.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'kernel/bpf/core.c')
0 files changed, 0 insertions, 0 deletions