Hi, On 9/11/2022 8:23 PM, Shmulik Ladkani wrote: > This allows kernel code dealing with dynptrs obtain dynptr's available > size and current (w. proper offset) data pointer. > > Signed-off-by: Shmulik Ladkani <shmulik.ladkani@xxxxxxxxx> SNIP > + > +static inline void *bpf_dynptr_get_data(struct bpf_dynptr_kern *ptr) > +{ > + return ptr->data ? ptr->data + ptr->offset : NULL; > +} Have one dummy question here. Is ptr->data == NULL is possible ? According to the function prototype of bpf_dynptr_from_mem(), data can not be NULL. And IMO in order to simplify the usage of bpf_dynptr_kernel, we need to ensure ptr->data should be not NULL, else will need to add a NULL checking for every access of bpf_dynptr_kernel in kernel. > > #ifdef CONFIG_BPF_LSM > void bpf_cgroup_atype_get(u32 attach_btf_id, int cgroup_atype); > diff --git a/kernel/bpf/helpers.c b/kernel/bpf/helpers.c > index fc08035f14ed..824864ac82d1 100644 > --- a/kernel/bpf/helpers.c > +++ b/kernel/bpf/helpers.c > @@ -1408,7 +1408,7 @@ static void bpf_dynptr_set_type(struct bpf_dynptr_kern *ptr, enum bpf_dynptr_typ > ptr->size |= type << DYNPTR_TYPE_SHIFT; > } > > -static u32 bpf_dynptr_get_size(struct bpf_dynptr_kern *ptr) > +u32 bpf_dynptr_get_size(struct bpf_dynptr_kern *ptr) > { > return ptr->size & DYNPTR_SIZE_MASK; > }