On Sun, Jan 01, 2023 at 02:03:57PM +0530, Kumar Kartikeya Dwivedi wrote: > Currently, while reads are disallowed for dynptr stack slots, writes are > not. Reads don't work from both direct access and helpers, while writes > do work in both cases, but have the effect of overwriting the slot_type. Unrelated to this patch set, but disallowing reads from dynptr slots seems like unnecessary restriction. We allow reads from spilled slots and conceptually dynptr slots should fall in is_spilled_reg() category in check_stack_read_*(). We already can do: d = bpf_rdonly_cast(dynptr, bpf_core_type_id_kernel(struct bpf_dynptr_kern)) d->size; and there is really no need to add bpf_dynptr* accessors either as helpers or as kfuncs. All accessors can simply be 'static inline' pure bpf functions in bpf_helpers.h. Automatic inlining and zero kernel side maintenance. With verifier allowing reads into dynptr we can also enable bpf_cast_to_kern_ctx() to convert struct bpf_dynptr to struct bpf_dynptr_kern and enable even faster reads.