> Split __register_btf_kfunc_id_set(), register_btf_id_dtor_kfuncs() and > __register_bpf_struct_ops() into the part that looks up the BTF for the > owner and the part that adds the registration to a given BTF: > btf_kfunc_id_set_add(), btf_dtor_kfuncs_add() and > btf_struct_ops_register(). > > In is_valid_value_type(), look up bpf_struct_ops_common_value in the btf > the function was given rather than in the btf_vmlinux global. The id is > a vmlinux id and a module BTF resolves it through its base, so the result > is the same; the function already uses the passed btf for every other > lookup. > > No functional change. With CONFIG_DEBUG_INFO_BTF=m, registrations made > from initcalls before the vmlinux BTF is available are queued and applied > later by the BTF parsing code, which needs the add-to-this-btf half on > its own; the struct_ops ones are applied before the parsed vmlinux BTF is > published, i.e. while btf_vmlinux is still NULL. > > Signed-off-by: Jay Wang <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great! -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=2
