lkml.org 
[lkml]   [2024]   [Jan]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH bpf-next v2 3/3] bpf: treewide: Annotate BPF kfuncs in BTF
    On Fri, Jan 05, 2024 at 09:55:43AM -0700, Daniel Xu wrote:
    > On Fri, Jan 05, 2024 at 04:11:33PM +0100, Jiri Olsa wrote:
    > > On Thu, Jan 04, 2024 at 07:45:49PM -0700, Daniel Xu wrote:
    > >
    > > SNIP
    > >
    > > > diff --git a/fs/verity/measure.c b/fs/verity/measure.c
    > > > index bf7a5f4cccaf..3969d54158d1 100644
    > > > --- a/fs/verity/measure.c
    > > > +++ b/fs/verity/measure.c
    > > > @@ -159,9 +159,9 @@ __bpf_kfunc int bpf_get_fsverity_digest(struct file *file, struct bpf_dynptr_ker
    > > >
    > > > __bpf_kfunc_end_defs();
    > > >
    > > > -BTF_SET8_START(fsverity_set_ids)
    > > > +BTF_KFUNCS_START(fsverity_set_ids)
    > > > BTF_ID_FLAGS(func, bpf_get_fsverity_digest, KF_TRUSTED_ARGS)
    > > > -BTF_SET8_END(fsverity_set_ids)
    > > > +BTF_KFUNCS_END(fsverity_set_ids)
    > > >
    > > > static int bpf_get_fsverity_digest_filter(const struct bpf_prog *prog, u32 kfunc_id)
    > > > {
    > > > diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
    > > > index 51e8b4bee0c8..8cc718f37a9d 100644
    > > > --- a/kernel/bpf/btf.c
    > > > +++ b/kernel/bpf/btf.c
    > > > @@ -7802,6 +7802,10 @@ int register_btf_kfunc_id_set(enum bpf_prog_type prog_type,
    > > > {
    > > > enum btf_kfunc_hook hook;
    > > >
    > > > + /* All kfuncs need to be tagged as such in BTF */
    > > > + if (WARN_ON(!(kset->set->flags & BTF_SET8_KFUNCS)))
    > > > + return -EINVAL;
    > >
    > > having the warning for module with wrong set8 flags seems wrong to me,
    > > I think we should trigger the warn only for kernel calls.. by adding
    > > kset->owner check in the condition above
    >
    > Just checking:
    >
    > The reasoning is that =m and out-of-tree modules can and should check
    > return code, right?
    >
    > And =y modules or vmlinux-based registrations do not check return code,
    > so WARN() is necessary?
    >
    > If so, I'd agree.

    right, I was also concerned we could flood console with loading module
    that just uses wrong set8.. perhaps we could just use WARN_ON_ONCE with
    no additional checks

    jirka

    \
     
     \ /
      Last update: 2024-01-06 20:11    [W:6.968 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site