On Mon, Jan 08, 2024 at 10:59:53AM -0700, Daniel Xu wrote: > On Mon, Jan 08, 2024 at 10:14:13AM +0100, Lorenz Bauer wrote: > > On Sat, Jan 6, 2024 at 7:25 PM Daniel Xu <dxu@xxxxxxxxx> wrote: > > > > > > This macro pair is functionally equivalent to BTF_SET8_START/END, except > > > with BTF_SET8_KFUNCS flag set in the btf_id_set8 flags field. The next > > > commit will codemod all kfunc set8s to this new variant such that all > > > kfuncs are tagged as such in .BTF_ids section. > > > > > > Signed-off-by: Daniel Xu <dxu@xxxxxxxxx> > > > --- > > > include/linux/btf_ids.h | 11 +++++++++++ > > > 1 file changed, 11 insertions(+) > > > > > > diff --git a/include/linux/btf_ids.h b/include/linux/btf_ids.h > > > index dca09b7f21dc..0fe4f1cd1918 100644 > > > --- a/include/linux/btf_ids.h > > > +++ b/include/linux/btf_ids.h > > > @@ -8,6 +8,9 @@ struct btf_id_set { > > > u32 ids[]; > > > }; > > > > > > +/* This flag implies BTF_SET8 holds kfunc(s) */ > > > +#define BTF_SET8_KFUNCS (1 << 0) > > > > Nit: could this be an enum so that the flag is discoverable via BTF? > > Sure, makes sense. I took a look - don't think we can make it an enum. See include/linux/btf.h: /* These need to be macros, as the expressions are used in assembler input */ #define KF_ACQUIRE (1 << 0) /* kfunc is an acquire function */ #define KF_RELEASE (1 << 1) /* kfunc is a release function */ [..] Could do some redefines but maybe not worth it. The new flag is a pretty deep impl detail anyways. Thanks, Daniel