summaryrefslogtreecommitdiffstats
path: root/samples
diff options
context:
space:
mode:
authorAlexei Starovoitov <ast@kernel.org>2023-12-19 18:06:47 -0800
committerAlexei Starovoitov <ast@kernel.org>2023-12-19 18:06:47 -0800
commit85dd93ac6e00adf09fc27e4d2e7f5c9aaf275d38 (patch)
tree48f3b6ea5e3a22eed329e643098b62564b85e910 /samples
parentc337f237291b41b308c80124236876cf66c77906 (diff)
parentf0a5056222f2cfa6d40b4c888cb6b01e8569e282 (diff)
downloadlinux-stable-85dd93ac6e00adf09fc27e4d2e7f5c9aaf275d38.tar.gz
linux-stable-85dd93ac6e00adf09fc27e4d2e7f5c9aaf275d38.tar.bz2
linux-stable-85dd93ac6e00adf09fc27e4d2e7f5c9aaf275d38.zip
Merge branch 'enhance-bpf-global-subprogs-with-argument-tags'
Andrii Nakryiko says: ==================== Enhance BPF global subprogs with argument tags This patch set adds verifier support for annotating user's global BPF subprog arguments with few commonly requested annotations, to improve global subprog verification experience. These tags are: - ability to annotate a special PTR_TO_CTX argument; - ability to annotate a generic PTR_TO_MEM as non-null. We utilize btf_decl_tag attribute for this and provide two helper macros as part of bpf_helpers.h in libbpf (patch #8). Besides this we also add abilit to pass a pointer to dynptr into global subprog. This is done based on type name match (struct bpf_dynptr *). This allows to pass dynptrs into global subprogs, for use cases that deal with variable-sized generic memory pointers. Big chunk of the patch set (patches #1 through #5) are various refactorings to make verifier internals around global subprog validation logic easier to extend and support long term, eliminating BTF parsing logic duplication, factoring out argument expectation definitions from BTF parsing, etc. New functionality is added in patch #6 (ctx and non-null) and patch #7 (dynptr), extending global subprog checks with awareness for arg tags. Patch #9 adds simple tests validating each of the added tags and dynptr argument passing. Patch #10 adds a simple negative case for freplace programs to make sure that target BPF programs with "unreliable" BTF func proto cannot be freplaced. v2->v3: - patch #10 improved by checking expected verifier error (Eduard); v1->v2: - dropped packet args for now (Eduard); - added back unreliable=true detection for entry BPF programs (Eduard); - improved subprog arg validation (Eduard); - switched dynptr arg from tag to just type name based check (Eduard). ==================== Link: https://lore.kernel.org/r/20231215011334.2307144-1-andrii@kernel.org Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'samples')
0 files changed, 0 insertions, 0 deletions