Message ID | ZnB9X1Jj6c04ufC0@sirena.org.uk |
---|---|
State | New |
Headers | show |
Series | linux-next: build failure after merge of the bpf-next tree | expand |
Hi Mark, kernel test robot noticed the following build errors: [auto build test ERROR on hid/for-next] [cannot apply to linus/master v6.10-rc4 next-20240621] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Mark-Brown/linux-next-build-failure-after-merge-of-the-bpf-next-tree/20240618-022240 base: https://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git for-next patch link: https://lore.kernel.org/r/ZnB9X1Jj6c04ufC0%40sirena.org.uk patch subject: linux-next: build failure after merge of the bpf-next tree config: x86_64-randconfig-r122-20240622 (https://download.01.org/0day-ci/archive/20240622/202406221655.xSqDIUk6-lkp@intel.com/config) compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240622/202406221655.xSqDIUk6-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202406221655.xSqDIUk6-lkp@intel.com/ All errors (new ones prefixed by >>): >> drivers/hid/bpf/hid_bpf_struct_ops.c:280:9: error: incompatible function pointer types initializing 'int (*)(void *)' with an expression of type 'int (void *, struct bpf_link *)' [-Wincompatible-function-pointer-types] 280 | .reg = hid_bpf_reg, | ^~~~~~~~~~~ >> drivers/hid/bpf/hid_bpf_struct_ops.c:281:11: error: incompatible function pointer types initializing 'void (*)(void *)' with an expression of type 'void (void *, struct bpf_link *)' [-Wincompatible-function-pointer-types] 281 | .unreg = hid_bpf_unreg, | ^~~~~~~~~~~~~ 2 errors generated. vim +280 drivers/hid/bpf/hid_bpf_struct_ops.c ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 274 ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 275 static struct bpf_struct_ops bpf_hid_bpf_ops = { ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 276 .verifier_ops = &hid_bpf_verifier_ops, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 277 .init = hid_bpf_ops_init, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 278 .check_member = hid_bpf_ops_check_member, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 279 .init_member = hid_bpf_ops_init_member, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 @280 .reg = hid_bpf_reg, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 @281 .unreg = hid_bpf_unreg, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 282 .name = "hid_bpf_ops", ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 283 .cfi_stubs = &__bpf_hid_bpf_ops, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 284 .owner = THIS_MODULE, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 285 }; ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 286
Hi Mark, kernel test robot noticed the following build errors: [auto build test ERROR on hid/for-next] [cannot apply to linus/master v6.10-rc4 next-20240621] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Mark-Brown/linux-next-build-failure-after-merge-of-the-bpf-next-tree/20240618-022240 base: https://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git for-next patch link: https://lore.kernel.org/r/ZnB9X1Jj6c04ufC0%40sirena.org.uk patch subject: linux-next: build failure after merge of the bpf-next tree config: i386-allmodconfig (https://download.01.org/0day-ci/archive/20240622/202406221626.JK0Nnkxy-lkp@intel.com/config) compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240622/202406221626.JK0Nnkxy-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202406221626.JK0Nnkxy-lkp@intel.com/ All errors (new ones prefixed by >>): >> drivers/hid/bpf/hid_bpf_struct_ops.c:280:16: error: initialization of 'int (*)(void *)' from incompatible pointer type 'int (*)(void *, struct bpf_link *)' [-Werror=incompatible-pointer-types] 280 | .reg = hid_bpf_reg, | ^~~~~~~~~~~ drivers/hid/bpf/hid_bpf_struct_ops.c:280:16: note: (near initialization for 'bpf_hid_bpf_ops.reg') >> drivers/hid/bpf/hid_bpf_struct_ops.c:281:18: error: initialization of 'void (*)(void *)' from incompatible pointer type 'void (*)(void *, struct bpf_link *)' [-Werror=incompatible-pointer-types] 281 | .unreg = hid_bpf_unreg, | ^~~~~~~~~~~~~ drivers/hid/bpf/hid_bpf_struct_ops.c:281:18: note: (near initialization for 'bpf_hid_bpf_ops.unreg') cc1: some warnings being treated as errors vim +280 drivers/hid/bpf/hid_bpf_struct_ops.c ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 274 ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 275 static struct bpf_struct_ops bpf_hid_bpf_ops = { ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 276 .verifier_ops = &hid_bpf_verifier_ops, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 277 .init = hid_bpf_ops_init, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 278 .check_member = hid_bpf_ops_check_member, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 279 .init_member = hid_bpf_ops_init_member, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 @280 .reg = hid_bpf_reg, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 @281 .unreg = hid_bpf_unreg, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 282 .name = "hid_bpf_ops", ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 283 .cfi_stubs = &__bpf_hid_bpf_ops, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 284 .owner = THIS_MODULE, ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 285 }; ebc0d8093e8c97 Benjamin Tissoires 2024-06-08 286
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@kernel.org> 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@kernel.org> > 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@kernel.org> > --- > 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 >
On Jun 24 2024, Thinker Li wrote: > 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. Ok, thanks for the review. However, the need appears because there is a conflicting update in the bpf tree. May I ask the bpf maintainers (Daniel/Alexei/Andrii) for an immutable tag I could merge to so I can take this patch from Mark? > > 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. FWIW, Mark handles linux-next, so not sure he has deep knowledge of HID-BPF, and not sure he wants too :) Regarding .update, I'm not sure it's worth the effort for hid-bpf. Right now HID-BPF programs are just a one-shot: you load them, pin them and forget. This might be different when systemd starts implementing a HID firewall, but we can cross that bridge when we see fit. Cheers, Benjamin > > On Mon, Jun 17, 2024 at 11:16 AM Mark Brown <broonie@kernel.org> 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@kernel.org> > > 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@kernel.org> > > --- > > 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 > >
On Tue, Jun 25, 2024 at 05:54:47PM +0200, Benjamin Tissoires wrote: > On Jun 24 2024, Thinker Li wrote: > > 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. > FWIW, Mark handles linux-next, so not sure he has deep knowledge of > HID-BPF, and not sure he wants too :) Only holiday cover but yes.
On Tue, Jun 25, 2024 at 8:54 AM Benjamin Tissoires <bentiss@kernel.org> wrote: > > On Jun 24 2024, Thinker Li wrote: > > 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. > > Ok, thanks for the review. However, the need appears because there is a > conflicting update in the bpf tree. > > May I ask the bpf maintainers (Daniel/Alexei/Andrii) for an immutable > tag I could merge to so I can take this patch from Mark? I'm not sure how that would look like. imo conflict is minor enough. When net-next/bpf-next lands in the upcoming merge window just provide Mark's patch as a conflict resolution suggestion in the cover letter of hid PR ?
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;