Hi Mark, I'm sorry for not getting back to you sooner. I have been traveling since my last message. I guess this patch is for the HID tree. The changes in this patch are great. However, I suggest you implement ".update" if you think it is reasonable for HID, although it is not a MUST-BE. ".update" provides a good feature that user space programs can update an implementation on the flight. On Mon, Jun 17, 2024 at 11:16 AM Mark Brown <broonie@xxxxxxxxxx> wrote: > > Hi all, > > After merging the bpf-next tree, today's linux-next build (x86_64 > allmodconfig) failed like this: > > /tmp/next/build/drivers/hid/bpf/hid_bpf_struct_ops.c:280:16: error: initialization of 'int (*)(void *, struct bpf_link *)' from incompatible pointer type 'int (*)(void *)' [-Werror=incompatible-pointer-types] > 280 | .reg = hid_bpf_reg, > | ^~~~~~~~~~~ > /tmp/next/build/drivers/hid/bpf/hid_bpf_struct_ops.c:280:16: note: (near initialization for 'bpf_hid_bpf_ops.reg') > /tmp/next/build/drivers/hid/bpf/hid_bpf_struct_ops.c:281:18: error: initialization of 'void (*)(void *, struct bpf_link *)' from incompatible pointer type 'void (*)(void *)' [-Werror=incompatible-pointer-types] > 281 | .unreg = hid_bpf_unreg, > | ^~~~~~~~~~~~~ > /tmp/next/build/drivers/hid/bpf/hid_bpf_struct_ops.c:281:18: note: (near initialization for 'bpf_hid_bpf_ops.unreg') > > Caused by commit > > 73287fe228721b ("bpf: pass bpf_struct_ops_link to callbacks in bpf_struct_ops.") > > interacting with commit > > ebc0d8093e8c97 ("HID: bpf: implement HID-BPF through bpf_struct_ops") > > from the HID tree. > > I've fixed it up as below: > > From e8aeaba00440845f9bd8d6183ca5d7383a678cd3 Mon Sep 17 00:00:00 2001 > From: Mark Brown <broonie@xxxxxxxxxx> > Date: Mon, 17 Jun 2024 19:02:27 +0100 > Subject: [PATCH] HID: bpf: Fix up build > > Fix up build error due to 73287fe228721b ("bpf: pass bpf_struct_ops_link to callbacks in bpf_struct_ops.") > > Signed-off-by: Mark Brown <broonie@xxxxxxxxxx> > --- > drivers/hid/bpf/hid_bpf_struct_ops.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/hid/bpf/hid_bpf_struct_ops.c b/drivers/hid/bpf/hid_bpf_struct_ops.c > index 5f200557ff12b..744318e7d936b 100644 > --- a/drivers/hid/bpf/hid_bpf_struct_ops.c > +++ b/drivers/hid/bpf/hid_bpf_struct_ops.c > @@ -175,7 +175,7 @@ static int hid_bpf_ops_init_member(const struct btf_type *t, > return 0; > } > > -static int hid_bpf_reg(void *kdata) > +static int hid_bpf_reg(void *kdata, struct bpf_link *link) > { > struct hid_bpf_ops *ops = kdata; > struct hid_device *hdev; > @@ -229,7 +229,7 @@ static int hid_bpf_reg(void *kdata) > return err; > } > > -static void hid_bpf_unreg(void *kdata) > +static void hid_bpf_unreg(void *kdata, struct bpf_link *link) > { > struct hid_bpf_ops *ops = kdata; > struct hid_device *hdev; > -- > 2.39.2 >