Re: [PATCH bpf-next v2 19/25] bpf: Introduce bpf_kptr_new

Alexei Starovoitov
2022-10-19T02:31:30Z

On Thu, Oct 13, 2022 at 11:52:57AM +0530, Kumar Kartikeya Dwivedi wrote:
> +void *bpf_kptr_new_impl(u64 local_type_id__k, u64 flags, void *meta__ign)
> +{
> + struct btf_struct_meta *meta = meta__ign;
> + u64 size = local_type_id__k;
> + void *p;
> +
> + if (unlikely(flags || !bpf_global_ma_set))
> + return NULL;

Unused 'flags' looks weird in unstable api. Just drop it?
And keep it as:
void *bpf_kptr_new(u64 local_type_id__k, struct btf_struct_meta *meta__ign);

and in bpf_experimental.h:

extern void *bpf_kptr_new(__u64 local_type_id) __ksym;

since __ign args are ignored during kfunc type match
the bpf progs can use it without #define.

> + p = bpf_mem_alloc(&bpf_global_ma, size);
> + if (!p)
> + return NULL;
> + if (meta)
> + bpf_obj_init(meta->off_arr, p);

I'm starting to dislike all that _arr and _tab suffixes in the verifier code base.
It reminds me of programming style where people tried to add types into
variable names. imo dropping _arr wouldn't be just fine.