linux-stable/Documentation/bpf
Daniel Rosenberg 3bda08b636 bpf: Allow NULL buffers in bpf_dynptr_slice(_rw)
bpf_dynptr_slice(_rw) uses a user provided buffer if it can not provide
a pointer to a block of contiguous memory. This buffer is unused in the
case of local dynptrs, and may be unused in other cases as well. There
is no need to require the buffer, as the kfunc can just return NULL if
it was needed and not provided.

This adds another kfunc annotation, __opt, which combines with __sz and
__szk to allow the buffer associated with the size to be NULL. If the
buffer is NULL, the verifier does not check that the buffer is of
sufficient size.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Link: https://lore.kernel.org/r/20230506013134.2492210-2-drosen@google.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2023-05-06 16:42:57 -07:00
..
libbpf bpf, docs: Libbpf overview documentation 2023-03-18 10:17:39 -07:00
bpf_design_QA.rst bpf: Rename __kptr_ref -> __kptr and __kptr -> __kptr_untrusted. 2023-03-03 17:42:20 +01:00
bpf_devel_QA.rst bpf-next-for-netdev 2023-04-13 16:43:38 -07:00
bpf_iterators.rst bpf, docs: BPF Iterator Document 2022-12-04 16:41:22 -08:00
bpf_licensing.rst bpf: Document BPF licensing. 2021-09-22 23:13:13 +02:00
bpf_prog_run.rst Documentation/bpf: Add documentation for BPF_PROG_RUN 2022-03-09 14:19:22 -08:00
btf.rst docs/bpf: Update btf selftests program and add link 2022-11-25 00:00:15 +01:00
clang-notes.rst bpf, docs: Explain helper functions 2023-03-10 13:02:00 -08:00
classic_vs_extended.rst bpf, docs: Split the comparism to classic BPF from instruction-set.rst 2021-12-30 16:31:44 -08:00
cpumasks.rst bpf,docs: Remove bpf_cpumask_kptr_get() from documentation 2023-03-16 12:28:30 -07:00
drgn.rst bpf: Document bpf_inspect drgn tool 2020-03-26 00:08:36 +01:00
faq.rst bpf, docs: Fix ordering of bpf documentation 2021-11-17 23:24:01 +01:00
graph_ds_impl.rst Documentation: bpf: Add missing line break separator in node_data struct code block 2023-02-15 08:43:51 -08:00
helpers.rst bpf, docs: Fix ordering of bpf documentation 2021-11-17 23:24:01 +01:00
index.rst bpf/docs: Document cpumask kfuncs in a new file 2023-01-25 07:57:50 -08:00
instruction-set.rst bpf, docs: Add docs on extended 64-bit immediate instructions 2023-04-02 17:02:54 -07:00
kfuncs.rst bpf: Allow NULL buffers in bpf_dynptr_slice(_rw) 2023-05-06 16:42:57 -07:00
linux-notes.rst bpf, docs: Add docs on extended 64-bit immediate instructions 2023-04-02 17:02:54 -07:00
llvm_reloc.rst bpf, docs: Update llvm_relocs.rst with typo fixes 2023-05-05 08:20:39 -07:00
map_array.rst docs/bpf: Fix sphinx warnings in BPF map docs 2022-11-24 01:05:04 +01:00
map_bloom_filter.rst docs/bpf: Document BPF_MAP_TYPE_BLOOM_FILTER 2022-11-23 22:47:32 +01:00
map_cgroup_storage.rst Remove duplicate words inside documentation 2022-09-27 13:21:43 -06:00
map_cgrp_storage.rst docs/bpf: Add documentation for new cgroup local storage 2022-10-25 23:19:20 -07:00
map_cpumap.rst docs/bpf: Fix sphinx warnings for cpumap 2022-11-23 22:38:53 +01:00
map_devmap.rst docs/bpf: Fix sphinx warnings for devmap 2022-11-23 22:40:27 +01:00
map_hash.rst docs/bpf: Add LRU internals description and graph 2023-04-27 14:20:44 +02:00
map_lpm_trie.rst docs/bpf: Fix sphinx warnings in BPF map docs 2022-11-24 01:05:04 +01:00
map_lru_hash_update.dot docs/bpf: Add LRU internals description and graph 2023-04-27 14:20:44 +02:00
map_of_maps.rst docs/bpf: Fix sphinx warnings in BPF map docs 2022-11-24 01:05:04 +01:00
map_queue_stack.rst docs/bpf: Fix sphinx warnings in BPF map docs 2022-11-24 01:05:04 +01:00
map_sk_storage.rst docs/bpf: Reword docs for BPF_MAP_TYPE_SK_STORAGE 2022-12-14 18:35:41 +01:00
map_sockmap.rst docs: BPF_MAP_TYPE_SOCK[MAP|HASH] 2022-12-20 15:54:05 -08:00
map_xskmap.rst Documentation: bpf: correct spelling 2023-01-28 12:22:20 -08:00
maps.rst bpf, docs: Fix final bpf docs build failure 2023-03-02 22:36:10 -08:00
other.rst bpf, documentation: Add graph documentation for non-owning refs 2023-02-13 19:40:53 -08:00
prog_cgroup_sockopt.rst bpf: Document optval > PAGE_SIZE behavior for sockopt hooks 2020-06-17 10:54:05 -07:00
prog_cgroup_sysctl.rst bpf: Document BPF_PROG_TYPE_CGROUP_SYSCTL 2019-04-18 16:05:36 -07:00
prog_flow_dissector.rst bpf/flow_dissector: add mode to enforce global BPF flow dissector 2019-10-07 20:16:33 -07:00
prog_lsm.rst bpf, docs: Rename bpf_lsm.rst to prog_lsm.rst 2021-11-17 23:23:58 +01:00
prog_sk_lookup.rst bpf: sk_lookup: Add user documentation 2020-08-24 14:46:50 -07:00
programs.rst docs/bpf: Add table of BPF program types to libbpf docs 2022-11-23 13:31:20 -08:00
redirect.rst bpf, docs: DEVMAPs and XDP_REDIRECT 2022-11-18 23:16:31 +01:00
ringbuf.rst Documentation: bpf: correct spelling 2023-01-28 12:22:20 -08:00
s390.rst bpf: Add s390 testing documentation 2019-10-30 16:25:31 +01:00
syscall_api.rst bpf, docs: Fix ordering of bpf documentation 2021-11-17 23:24:01 +01:00
test_debug.rst bpf, docs: Fix ordering of bpf documentation 2021-11-17 23:24:01 +01:00
verifier.rst docs/bpf: Add description of register liveness tracking algorithm 2023-02-02 20:21:59 -08:00