* [tip:timers/vdso 37/45] progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function @ 2026-03-11 14:29 kernel test robot 2026-03-11 15:09 ` Thomas Weißschuh 0 siblings, 1 reply; 7+ messages in thread From: kernel test robot @ 2026-03-11 14:29 UTC (permalink / raw) To: Thomas Weißschuh ; +Cc: oe-kbuild-all, linux-kernel, x86, Thomas Gleixner tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/vdso head: f7178f159b2a36d070fd43b0d751e4e4415ec39e commit: 912632a7fd4cc1eac2778828d92e8fe46939d6bd [37/45] vdso/datapage: Trim down unnecessary includes config: riscv-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20260311/202603111558.KLCIxsZB-lkp@intel.com/config) compiler: riscv64-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260311/202603111558.KLCIxsZB-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/202603111558.KLCIxsZB-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from progs/hid.c:3: >> progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] 117 | extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; | ^ progs/hid_bpf_helpers.h:118:32: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] 118 | extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; | ^ progs/hid_bpf_helpers.h:119:39: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] 119 | extern int bpf_wq_set_callback(struct bpf_wq *wq, | ^ >> progs/hid.c:448:16: error: field has incomplete type 'struct bpf_wq' 448 | struct bpf_wq work; | ^ progs/hid.c:448:9: note: forward declaration of 'struct bpf_wq' 448 | struct bpf_wq work; | ^ >> progs/hid.c:487:18: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] 487 | if (bpf_wq_init(wq, &hmap, 0) != 0) | ^~ progs/hid_bpf_helpers.h:117:39: note: passing argument to parameter 'wq' here 117 | extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; | ^ progs/hid.c:490:26: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] 490 | if (bpf_wq_set_callback(wq, wq_cb_sleepable, 0)) | ^~ progs/hid_bpf_helpers.h:119:47: note: passing argument to parameter 'wq' here 119 | extern int bpf_wq_set_callback(struct bpf_wq *wq, | ^ progs/hid.c:493:19: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] 493 | if (bpf_wq_start(wq, 0)) | ^~ progs/hid_bpf_helpers.h:118:40: note: passing argument to parameter 'wq' here 118 | extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; | ^ progs/hid.c:503:24: error: incomplete definition of type 'struct hid_device' 503 | int hid = hid_ctx->hid->id; | ~~~~~~~~~~~~^ progs/hid_bpf_helpers.h:59:9: note: forward declaration of 'struct hid_device' 59 | struct hid_device *hid; | ^ 8 errors generated. -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [tip:timers/vdso 37/45] progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function 2026-03-11 14:29 [tip:timers/vdso 37/45] progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function kernel test robot @ 2026-03-11 15:09 ` Thomas Weißschuh 2026-03-11 17:05 ` Benjamin Tissoires 0 siblings, 1 reply; 7+ messages in thread From: Thomas Weißschuh @ 2026-03-11 15:09 UTC (permalink / raw) To: Jiri Kosina, Benjamin Tissoires Cc: linux-input, kernel test robot, oe-kbuild-all, linux-kernel, x86, Thomas Gleixner Hi Jiri and Benjamin, could you take a look at the report below? This looks like an issue in the HID BPF subsystem, surfaced by my unrelated change. Does this ring a bell for you? I wasn't able to reproduce it so far, but will continue looking into it. Thomas On Wed, Mar 11, 2026 at 03:29:54PM +0100, kernel test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/vdso > head: f7178f159b2a36d070fd43b0d751e4e4415ec39e > commit: 912632a7fd4cc1eac2778828d92e8fe46939d6bd [37/45] vdso/datapage: Trim down unnecessary includes > config: riscv-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20260311/202603111558.KLCIxsZB-lkp@intel.com/config) > compiler: riscv64-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0 > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260311/202603111558.KLCIxsZB-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/202603111558.KLCIxsZB-lkp@intel.com/ > > All errors (new ones prefixed by >>): > > In file included from progs/hid.c:3: > >> progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > 117 | extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; > | ^ > progs/hid_bpf_helpers.h:118:32: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > 118 | extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; > | ^ > progs/hid_bpf_helpers.h:119:39: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > 119 | extern int bpf_wq_set_callback(struct bpf_wq *wq, > | ^ > >> progs/hid.c:448:16: error: field has incomplete type 'struct bpf_wq' > 448 | struct bpf_wq work; > | ^ > progs/hid.c:448:9: note: forward declaration of 'struct bpf_wq' > 448 | struct bpf_wq work; > | ^ > >> progs/hid.c:487:18: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > 487 | if (bpf_wq_init(wq, &hmap, 0) != 0) > | ^~ > progs/hid_bpf_helpers.h:117:39: note: passing argument to parameter 'wq' here > 117 | extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; > | ^ > progs/hid.c:490:26: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > 490 | if (bpf_wq_set_callback(wq, wq_cb_sleepable, 0)) > | ^~ > progs/hid_bpf_helpers.h:119:47: note: passing argument to parameter 'wq' here > 119 | extern int bpf_wq_set_callback(struct bpf_wq *wq, > | ^ > progs/hid.c:493:19: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > 493 | if (bpf_wq_start(wq, 0)) > | ^~ > progs/hid_bpf_helpers.h:118:40: note: passing argument to parameter 'wq' here > 118 | extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; > | ^ > progs/hid.c:503:24: error: incomplete definition of type 'struct hid_device' > 503 | int hid = hid_ctx->hid->id; > | ~~~~~~~~~~~~^ > progs/hid_bpf_helpers.h:59:9: note: forward declaration of 'struct hid_device' > 59 | struct hid_device *hid; > | ^ > 8 errors generated. > > -- > 0-DAY CI Kernel Test Service > https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [tip:timers/vdso 37/45] progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function 2026-03-11 15:09 ` Thomas Weißschuh @ 2026-03-11 17:05 ` Benjamin Tissoires 2026-03-12 6:46 ` Thomas Weißschuh 0 siblings, 1 reply; 7+ messages in thread From: Benjamin Tissoires @ 2026-03-11 17:05 UTC (permalink / raw) To: Thomas Weißschuh Cc: Jiri Kosina, linux-input, kernel test robot, oe-kbuild-all, linux-kernel, x86, Thomas Gleixner On Mar 11 2026, Thomas Weißschuh wrote: > Hi Jiri and Benjamin, > > could you take a look at the report below? > This looks like an issue in the HID BPF subsystem, surfaced by my > unrelated change. Does this ring a bell for you? > > I wasn't able to reproduce it so far, but will continue looking into it. Both struct bpf_wq and struct hid_device should be generated in the vmlinux.h that we include in the selftests. So this is definitely not related to your patch AFAICT. Looking in the config, we have `# CONFIG_HID_SUPPORT is not set` -> so that would explain why struct hid_device is not available. But in that case, why are the HID selftests even built? The bpf_wq bits should be related to a similar-ish issue where one config setting is not set and so it's not included in the final BTF. I paged out how we can ignore selftests based on the .config, so if you have any hints, that would be nice :) Cheers, Benjamin > > > Thomas > > On Wed, Mar 11, 2026 at 03:29:54PM +0100, kernel test robot wrote: > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/vdso > > head: f7178f159b2a36d070fd43b0d751e4e4415ec39e > > commit: 912632a7fd4cc1eac2778828d92e8fe46939d6bd [37/45] vdso/datapage: Trim down unnecessary includes > > config: riscv-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20260311/202603111558.KLCIxsZB-lkp@intel.com/config) > > compiler: riscv64-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0 > > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260311/202603111558.KLCIxsZB-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/202603111558.KLCIxsZB-lkp@intel.com/ > > > > All errors (new ones prefixed by >>): > > > > In file included from progs/hid.c:3: > > >> progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > > 117 | extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; > > | ^ > > progs/hid_bpf_helpers.h:118:32: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > > 118 | extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; > > | ^ > > progs/hid_bpf_helpers.h:119:39: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > > 119 | extern int bpf_wq_set_callback(struct bpf_wq *wq, > > | ^ > > >> progs/hid.c:448:16: error: field has incomplete type 'struct bpf_wq' > > 448 | struct bpf_wq work; > > | ^ > > progs/hid.c:448:9: note: forward declaration of 'struct bpf_wq' > > 448 | struct bpf_wq work; > > | ^ > > >> progs/hid.c:487:18: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > > 487 | if (bpf_wq_init(wq, &hmap, 0) != 0) > > | ^~ > > progs/hid_bpf_helpers.h:117:39: note: passing argument to parameter 'wq' here > > 117 | extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; > > | ^ > > progs/hid.c:490:26: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > > 490 | if (bpf_wq_set_callback(wq, wq_cb_sleepable, 0)) > > | ^~ > > progs/hid_bpf_helpers.h:119:47: note: passing argument to parameter 'wq' here > > 119 | extern int bpf_wq_set_callback(struct bpf_wq *wq, > > | ^ > > progs/hid.c:493:19: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > > 493 | if (bpf_wq_start(wq, 0)) > > | ^~ > > progs/hid_bpf_helpers.h:118:40: note: passing argument to parameter 'wq' here > > 118 | extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; > > | ^ > > progs/hid.c:503:24: error: incomplete definition of type 'struct hid_device' > > 503 | int hid = hid_ctx->hid->id; > > | ~~~~~~~~~~~~^ > > progs/hid_bpf_helpers.h:59:9: note: forward declaration of 'struct hid_device' > > 59 | struct hid_device *hid; > > | ^ > > 8 errors generated. > > > > -- > > 0-DAY CI Kernel Test Service > > https://github.com/intel/lkp-tests/wiki > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [tip:timers/vdso 37/45] progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function 2026-03-11 17:05 ` Benjamin Tissoires @ 2026-03-12 6:46 ` Thomas Weißschuh 2026-03-12 17:34 ` Benjamin Tissoires 0 siblings, 1 reply; 7+ messages in thread From: Thomas Weißschuh @ 2026-03-12 6:46 UTC (permalink / raw) To: Benjamin Tissoires Cc: Jiri Kosina, linux-input, kernel test robot, oe-kbuild-all, linux-kernel, x86, Thomas Gleixner Hi Benjamin, thanks for the quick response. On Wed, Mar 11, 2026 at 06:05:25PM +0100, Benjamin Tissoires wrote: > On Mar 11 2026, Thomas Weißschuh wrote: > > could you take a look at the report below? > > This looks like an issue in the HID BPF subsystem, surfaced by my > > unrelated change. Does this ring a bell for you? > > > > I wasn't able to reproduce it so far, but will continue looking into it. > > Both struct bpf_wq and struct hid_device should be generated in the > vmlinux.h that we include in the selftests. So this is definitely not > related to your patch AFAICT. Ack. To be sure I sent this branch again through 0day and will see if it breaks on the same commit. > Looking in the config, we have `# CONFIG_HID_SUPPORT is not set` -> so > that would explain why struct hid_device is not available. But in that > case, why are the HID selftests even built? CONFIG_DEBUG_INFO_BTF is also not set. So there should be no vmlinux.h at all in the first. Which is exactly what happens in my attempts to reproduce the issue. But even when fixing that up, the issue persists. > The bpf_wq bits should be related to a similar-ish issue where one > config setting is not set and so it's not included in the final BTF. I'll look into how exactly things end up in vmlinux.h. At least the headers for 'struct bpf_wq' are always included somewhere. But maybe the type also needs to be used to define some structure. > I paged out how we can ignore selftests based on the .config, so if you > have any hints, that would be nice :) Inspecting the kernel configuration might be hard, as there might be no file for it available. Could you use vmlinux.h itself for feature detection? Thomas > > On Wed, Mar 11, 2026 at 03:29:54PM +0100, kernel test robot wrote: > > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/vdso > > > head: f7178f159b2a36d070fd43b0d751e4e4415ec39e > > > commit: 912632a7fd4cc1eac2778828d92e8fe46939d6bd [37/45] vdso/datapage: Trim down unnecessary includes > > > config: riscv-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20260311/202603111558.KLCIxsZB-lkp@intel.com/config) > > > compiler: riscv64-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0 > > > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260311/202603111558.KLCIxsZB-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/202603111558.KLCIxsZB-lkp@intel.com/ > > > > > > All errors (new ones prefixed by >>): > > > > > > In file included from progs/hid.c:3: > > > >> progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > > > 117 | extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; > > > | ^ > > > progs/hid_bpf_helpers.h:118:32: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > > > 118 | extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; > > > | ^ > > > progs/hid_bpf_helpers.h:119:39: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > > > 119 | extern int bpf_wq_set_callback(struct bpf_wq *wq, > > > | ^ > > > >> progs/hid.c:448:16: error: field has incomplete type 'struct bpf_wq' > > > 448 | struct bpf_wq work; > > > | ^ > > > progs/hid.c:448:9: note: forward declaration of 'struct bpf_wq' > > > 448 | struct bpf_wq work; > > > | ^ > > > >> progs/hid.c:487:18: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > > > 487 | if (bpf_wq_init(wq, &hmap, 0) != 0) > > > | ^~ > > > progs/hid_bpf_helpers.h:117:39: note: passing argument to parameter 'wq' here > > > 117 | extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; > > > | ^ > > > progs/hid.c:490:26: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > > > 490 | if (bpf_wq_set_callback(wq, wq_cb_sleepable, 0)) > > > | ^~ > > > progs/hid_bpf_helpers.h:119:47: note: passing argument to parameter 'wq' here > > > 119 | extern int bpf_wq_set_callback(struct bpf_wq *wq, > > > | ^ > > > progs/hid.c:493:19: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > > > 493 | if (bpf_wq_start(wq, 0)) > > > | ^~ > > > progs/hid_bpf_helpers.h:118:40: note: passing argument to parameter 'wq' here > > > 118 | extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; > > > | ^ > > > progs/hid.c:503:24: error: incomplete definition of type 'struct hid_device' > > > 503 | int hid = hid_ctx->hid->id; > > > | ~~~~~~~~~~~~^ > > > progs/hid_bpf_helpers.h:59:9: note: forward declaration of 'struct hid_device' > > > 59 | struct hid_device *hid; > > > | ^ > > > 8 errors generated. > > > > > > -- > > > 0-DAY CI Kernel Test Service > > > https://github.com/intel/lkp-tests/wiki > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [tip:timers/vdso 37/45] progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function 2026-03-12 6:46 ` Thomas Weißschuh @ 2026-03-12 17:34 ` Benjamin Tissoires 2026-03-13 8:20 ` Thomas Weißschuh 0 siblings, 1 reply; 7+ messages in thread From: Benjamin Tissoires @ 2026-03-12 17:34 UTC (permalink / raw) To: Thomas Weißschuh Cc: Jiri Kosina, linux-input, kernel test robot, oe-kbuild-all, linux-kernel, x86, Thomas Gleixner On Mar 12 2026, Thomas Weißschuh wrote: > Hi Benjamin, > > thanks for the quick response. > > On Wed, Mar 11, 2026 at 06:05:25PM +0100, Benjamin Tissoires wrote: > > On Mar 11 2026, Thomas Wei�schuh wrote: > > > could you take a look at the report below? > > > This looks like an issue in the HID BPF subsystem, surfaced by my > > > unrelated change. Does this ring a bell for you? > > > > > > I wasn't able to reproduce it so far, but will continue looking into it. > > > > Both struct bpf_wq and struct hid_device should be generated in the > > vmlinux.h that we include in the selftests. So this is definitely not > > related to your patch AFAICT. > > Ack. To be sure I sent this branch again through 0day and will see if it > breaks on the same commit. > > > Looking in the config, we have `# CONFIG_HID_SUPPORT is not set` -> so > > that would explain why struct hid_device is not available. But in that > > case, why are the HID selftests even built? > > CONFIG_DEBUG_INFO_BTF is also not set. So there should be no vmlinux.h > at all in the first. Which is exactly what happens in my attempts > to reproduce the issue. But even when fixing that up, the issue persists. > > > The bpf_wq bits should be related to a similar-ish issue where one > > config setting is not set and so it's not included in the final BTF. > > I'll look into how exactly things end up in vmlinux.h. > At least the headers for 'struct bpf_wq' are always included somewhere. > But maybe the type also needs to be used to define some structure. > > > I paged out how we can ignore selftests based on the .config, so if you > > have any hints, that would be nice :) > > Inspecting the kernel configuration might be hard, as there might be no file > for it available. Could you use vmlinux.h itself for feature detection? > Actually I think I remember the rationale: - because working with config is hard, we just hide any struct definition we need in progs/hid_bpf_helpers.h before including vmlinux.h - then we manually define them So it looks like this is a step I forgot to make when I added the last few bits: redefine struct bpf_wq and struct hid_device. Technically we shouldn't even need to redefine the entire struct, but only the bits we are accessing, because bpf with CO-RE will do the offsets for us :) Would the following patch fixes the issue?: --- From bf4030f8116a4bcafe9f8d84f3d03dd2eedc58a4 Mon Sep 17 00:00:00 2001 From: Benjamin Tissoires <bentiss@kernel.org> Date: Thu, 12 Mar 2026 18:29:40 +0100 Subject: [PATCH] selftests/hid: fix compilation when bpf_wq and hid_device are not exported This can happen in situations when CONFIG_HID_SUPPORT is set to no, or some complex situations where struct bpf_wq is not exported. So do the usual dance of hiding them before including vmlinux.h, and then redefining them and make use of CO-RE to have the correct offsets. Signed-off-by: Benjamin Tissoires <bentiss@kernel.org> --- tools/testing/selftests/hid/progs/hid_bpf_helpers.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tools/testing/selftests/hid/progs/hid_bpf_helpers.h b/tools/testing/selftests/hid/progs/hid_bpf_helpers.h index 80ab60905865..2c6ec907dd05 100644 --- a/tools/testing/selftests/hid/progs/hid_bpf_helpers.h +++ b/tools/testing/selftests/hid/progs/hid_bpf_helpers.h @@ -8,9 +8,11 @@ /* "undefine" structs and enums in vmlinux.h, because we "override" them below */ #define hid_bpf_ctx hid_bpf_ctx___not_used #define hid_bpf_ops hid_bpf_ops___not_used +#define hid_device hid_device___not_used #define hid_report_type hid_report_type___not_used #define hid_class_request hid_class_request___not_used #define hid_bpf_attach_flags hid_bpf_attach_flags___not_used +#define bpf_wq bpf_wq___not_used #define HID_INPUT_REPORT HID_INPUT_REPORT___not_used #define HID_OUTPUT_REPORT HID_OUTPUT_REPORT___not_used #define HID_FEATURE_REPORT HID_FEATURE_REPORT___not_used @@ -29,9 +31,11 @@ #undef hid_bpf_ctx #undef hid_bpf_ops +#undef hid_device #undef hid_report_type #undef hid_class_request #undef hid_bpf_attach_flags +#undef bpf_wq #undef HID_INPUT_REPORT #undef HID_OUTPUT_REPORT #undef HID_FEATURE_REPORT @@ -55,6 +59,14 @@ enum hid_report_type { HID_REPORT_TYPES, }; +struct hid_device { + unsigned int id; +} __attribute__((preserve_access_index)); + +struct bpf_wq { + __u64 __opaque[2]; +}; + struct hid_bpf_ctx { struct hid_device *hid; __u32 allocated_size; -- 2.52.0 --- Cheers, Benjamin > > Thomas > > > > On Wed, Mar 11, 2026 at 03:29:54PM +0100, kernel test robot wrote: > > > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/vdso > > > > head: f7178f159b2a36d070fd43b0d751e4e4415ec39e > > > > commit: 912632a7fd4cc1eac2778828d92e8fe46939d6bd [37/45] vdso/datapage: Trim down unnecessary includes > > > > config: riscv-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20260311/202603111558.KLCIxsZB-lkp@intel.com/config) > > > > compiler: riscv64-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0 > > > > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260311/202603111558.KLCIxsZB-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/202603111558.KLCIxsZB-lkp@intel.com/ > > > > > > > > All errors (new ones prefixed by >>): > > > > > > > > In file included from progs/hid.c:3: > > > > >> progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > > > > 117 | extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; > > > > | ^ > > > > progs/hid_bpf_helpers.h:118:32: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > > > > 118 | extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; > > > > | ^ > > > > progs/hid_bpf_helpers.h:119:39: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > > > > 119 | extern int bpf_wq_set_callback(struct bpf_wq *wq, > > > > | ^ > > > > >> progs/hid.c:448:16: error: field has incomplete type 'struct bpf_wq' > > > > 448 | struct bpf_wq work; > > > > | ^ > > > > progs/hid.c:448:9: note: forward declaration of 'struct bpf_wq' > > > > 448 | struct bpf_wq work; > > > > | ^ > > > > >> progs/hid.c:487:18: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > > > > 487 | if (bpf_wq_init(wq, &hmap, 0) != 0) > > > > | ^~ > > > > progs/hid_bpf_helpers.h:117:39: note: passing argument to parameter 'wq' here > > > > 117 | extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; > > > > | ^ > > > > progs/hid.c:490:26: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > > > > 490 | if (bpf_wq_set_callback(wq, wq_cb_sleepable, 0)) > > > > | ^~ > > > > progs/hid_bpf_helpers.h:119:47: note: passing argument to parameter 'wq' here > > > > 119 | extern int bpf_wq_set_callback(struct bpf_wq *wq, > > > > | ^ > > > > progs/hid.c:493:19: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > > > > 493 | if (bpf_wq_start(wq, 0)) > > > > | ^~ > > > > progs/hid_bpf_helpers.h:118:40: note: passing argument to parameter 'wq' here > > > > 118 | extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; > > > > | ^ > > > > progs/hid.c:503:24: error: incomplete definition of type 'struct hid_device' > > > > 503 | int hid = hid_ctx->hid->id; > > > > | ~~~~~~~~~~~~^ > > > > progs/hid_bpf_helpers.h:59:9: note: forward declaration of 'struct hid_device' > > > > 59 | struct hid_device *hid; > > > > | ^ > > > > 8 errors generated. > > > > > > > > -- > > > > 0-DAY CI Kernel Test Service > > > > https://github.com/intel/lkp-tests/wiki > > > > ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [tip:timers/vdso 37/45] progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function 2026-03-12 17:34 ` Benjamin Tissoires @ 2026-03-13 8:20 ` Thomas Weißschuh 2026-03-13 8:51 ` Benjamin Tissoires 0 siblings, 1 reply; 7+ messages in thread From: Thomas Weißschuh @ 2026-03-13 8:20 UTC (permalink / raw) To: Benjamin Tissoires Cc: Jiri Kosina, linux-input, kernel test robot, oe-kbuild-all, linux-kernel, x86, Thomas Gleixner On Thu, Mar 12, 2026 at 06:34:15PM +0100, Benjamin Tissoires wrote: > On Mar 12 2026, Thomas Weißschuh wrote: > > On Wed, Mar 11, 2026 at 06:05:25PM +0100, Benjamin Tissoires wrote: > > > On Mar 11 2026, Thomas Wei�schuh wrote: > > > > could you take a look at the report below? > > > > This looks like an issue in the HID BPF subsystem, surfaced by my > > > > unrelated change. Does this ring a bell for you? > > > > > > > > I wasn't able to reproduce it so far, but will continue looking into it. > > > > > > Both struct bpf_wq and struct hid_device should be generated in the > > > vmlinux.h that we include in the selftests. So this is definitely not > > > related to your patch AFAICT. > > > > Ack. To be sure I sent this branch again through 0day and will see if it > > breaks on the same commit. > > > > > Looking in the config, we have `# CONFIG_HID_SUPPORT is not set` -> so > > > that would explain why struct hid_device is not available. But in that > > > case, why are the HID selftests even built? > > > > CONFIG_DEBUG_INFO_BTF is also not set. So there should be no vmlinux.h > > at all in the first. Which is exactly what happens in my attempts > > to reproduce the issue. But even when fixing that up, the issue persists. > > > > > The bpf_wq bits should be related to a similar-ish issue where one > > > config setting is not set and so it's not included in the final BTF. > > > > I'll look into how exactly things end up in vmlinux.h. > > At least the headers for 'struct bpf_wq' are always included somewhere. > > But maybe the type also needs to be used to define some structure. > > > > > I paged out how we can ignore selftests based on the .config, so if you > > > have any hints, that would be nice :) > > > > Inspecting the kernel configuration might be hard, as there might be no file > > for it available. Could you use vmlinux.h itself for feature detection? > > > > Actually I think I remember the rationale: > - because working with config is hard, we just hide any struct > definition we need in progs/hid_bpf_helpers.h before including > vmlinux.h > - then we manually define them > > So it looks like this is a step I forgot to make when I added the last > few bits: redefine struct bpf_wq and struct hid_device. That makes sense. Thanks for checking. > Technically we shouldn't even need to redefine the entire struct, but > only the bits we are accessing, because bpf with CO-RE will do the > offsets for us :) > > Would the following patch fixes the issue?: I expect so. However none of the other bot (re-b)builds reproduced this issue, so I can't validate it. I'll put this down as some sort of fluke that it occurred while building my patch, especially given all the other weirdness in that report. Your patch should fix it for good. > --- > From bf4030f8116a4bcafe9f8d84f3d03dd2eedc58a4 Mon Sep 17 00:00:00 2001 > From: Benjamin Tissoires <bentiss@kernel.org> > Date: Thu, 12 Mar 2026 18:29:40 +0100 > Subject: [PATCH] selftests/hid: fix compilation when bpf_wq and hid_device are > not exported > > This can happen in situations when CONFIG_HID_SUPPORT is set to no, or > some complex situations where struct bpf_wq is not exported. > > So do the usual dance of hiding them before including vmlinux.h, and > then redefining them and make use of CO-RE to have the correct offsets. > > Signed-off-by: Benjamin Tissoires <bentiss@kernel.org> > --- > tools/testing/selftests/hid/progs/hid_bpf_helpers.h | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/tools/testing/selftests/hid/progs/hid_bpf_helpers.h b/tools/testing/selftests/hid/progs/hid_bpf_helpers.h > index 80ab60905865..2c6ec907dd05 100644 > --- a/tools/testing/selftests/hid/progs/hid_bpf_helpers.h > +++ b/tools/testing/selftests/hid/progs/hid_bpf_helpers.h > @@ -8,9 +8,11 @@ > /* "undefine" structs and enums in vmlinux.h, because we "override" them below */ > #define hid_bpf_ctx hid_bpf_ctx___not_used > #define hid_bpf_ops hid_bpf_ops___not_used > +#define hid_device hid_device___not_used > #define hid_report_type hid_report_type___not_used > #define hid_class_request hid_class_request___not_used > #define hid_bpf_attach_flags hid_bpf_attach_flags___not_used > +#define bpf_wq bpf_wq___not_used > #define HID_INPUT_REPORT HID_INPUT_REPORT___not_used > #define HID_OUTPUT_REPORT HID_OUTPUT_REPORT___not_used > #define HID_FEATURE_REPORT HID_FEATURE_REPORT___not_used > @@ -29,9 +31,11 @@ > > #undef hid_bpf_ctx > #undef hid_bpf_ops > +#undef hid_device > #undef hid_report_type > #undef hid_class_request > #undef hid_bpf_attach_flags > +#undef bpf_wq > #undef HID_INPUT_REPORT > #undef HID_OUTPUT_REPORT > #undef HID_FEATURE_REPORT > @@ -55,6 +59,14 @@ enum hid_report_type { > HID_REPORT_TYPES, > }; > > +struct hid_device { > + unsigned int id; > +} __attribute__((preserve_access_index)); > + > +struct bpf_wq { > + __u64 __opaque[2]; > +}; > + > struct hid_bpf_ctx { > struct hid_device *hid; > __u32 allocated_size; > -- > 2.52.0 > --- > > Cheers, > Benjamin > > > > > Thomas > > > > > > On Wed, Mar 11, 2026 at 03:29:54PM +0100, kernel test robot wrote: > > > > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/vdso > > > > > head: f7178f159b2a36d070fd43b0d751e4e4415ec39e > > > > > commit: 912632a7fd4cc1eac2778828d92e8fe46939d6bd [37/45] vdso/datapage: Trim down unnecessary includes > > > > > config: riscv-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20260311/202603111558.KLCIxsZB-lkp@intel.com/config) > > > > > compiler: riscv64-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0 > > > > > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260311/202603111558.KLCIxsZB-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/202603111558.KLCIxsZB-lkp@intel.com/ > > > > > > > > > > All errors (new ones prefixed by >>): > > > > > > > > > > In file included from progs/hid.c:3: > > > > > >> progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > > > > > 117 | extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; > > > > > | ^ > > > > > progs/hid_bpf_helpers.h:118:32: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > > > > > 118 | extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; > > > > > | ^ > > > > > progs/hid_bpf_helpers.h:119:39: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > > > > > 119 | extern int bpf_wq_set_callback(struct bpf_wq *wq, > > > > > | ^ > > > > > >> progs/hid.c:448:16: error: field has incomplete type 'struct bpf_wq' > > > > > 448 | struct bpf_wq work; > > > > > | ^ > > > > > progs/hid.c:448:9: note: forward declaration of 'struct bpf_wq' > > > > > 448 | struct bpf_wq work; > > > > > | ^ > > > > > >> progs/hid.c:487:18: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > > > > > 487 | if (bpf_wq_init(wq, &hmap, 0) != 0) > > > > > | ^~ > > > > > progs/hid_bpf_helpers.h:117:39: note: passing argument to parameter 'wq' here > > > > > 117 | extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; > > > > > | ^ > > > > > progs/hid.c:490:26: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > > > > > 490 | if (bpf_wq_set_callback(wq, wq_cb_sleepable, 0)) > > > > > | ^~ > > > > > progs/hid_bpf_helpers.h:119:47: note: passing argument to parameter 'wq' here > > > > > 119 | extern int bpf_wq_set_callback(struct bpf_wq *wq, > > > > > | ^ > > > > > progs/hid.c:493:19: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > > > > > 493 | if (bpf_wq_start(wq, 0)) > > > > > | ^~ > > > > > progs/hid_bpf_helpers.h:118:40: note: passing argument to parameter 'wq' here > > > > > 118 | extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; > > > > > | ^ > > > > > progs/hid.c:503:24: error: incomplete definition of type 'struct hid_device' > > > > > 503 | int hid = hid_ctx->hid->id; > > > > > | ~~~~~~~~~~~~^ > > > > > progs/hid_bpf_helpers.h:59:9: note: forward declaration of 'struct hid_device' > > > > > 59 | struct hid_device *hid; > > > > > | ^ > > > > > 8 errors generated. > > > > > > > > > > -- > > > > > 0-DAY CI Kernel Test Service > > > > > https://github.com/intel/lkp-tests/wiki > > > > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [tip:timers/vdso 37/45] progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function 2026-03-13 8:20 ` Thomas Weißschuh @ 2026-03-13 8:51 ` Benjamin Tissoires 0 siblings, 0 replies; 7+ messages in thread From: Benjamin Tissoires @ 2026-03-13 8:51 UTC (permalink / raw) To: Thomas Weißschuh Cc: Jiri Kosina, linux-input, kernel test robot, oe-kbuild-all, linux-kernel, x86, Thomas Gleixner On Mar 13 2026, Thomas Weißschuh wrote: > On Thu, Mar 12, 2026 at 06:34:15PM +0100, Benjamin Tissoires wrote: > > On Mar 12 2026, Thomas Wei�schuh wrote: > > > On Wed, Mar 11, 2026 at 06:05:25PM +0100, Benjamin Tissoires wrote: > > > > On Mar 11 2026, Thomas Wei�schuh wrote: > > > > > could you take a look at the report below? > > > > > This looks like an issue in the HID BPF subsystem, surfaced by my > > > > > unrelated change. Does this ring a bell for you? > > > > > > > > > > I wasn't able to reproduce it so far, but will continue looking into it. > > > > > > > > Both struct bpf_wq and struct hid_device should be generated in the > > > > vmlinux.h that we include in the selftests. So this is definitely not > > > > related to your patch AFAICT. > > > > > > Ack. To be sure I sent this branch again through 0day and will see if it > > > breaks on the same commit. > > > > > > > Looking in the config, we have `# CONFIG_HID_SUPPORT is not set` -> so > > > > that would explain why struct hid_device is not available. But in that > > > > case, why are the HID selftests even built? > > > > > > CONFIG_DEBUG_INFO_BTF is also not set. So there should be no vmlinux.h > > > at all in the first. Which is exactly what happens in my attempts > > > to reproduce the issue. But even when fixing that up, the issue persists. > > > > > > > The bpf_wq bits should be related to a similar-ish issue where one > > > > config setting is not set and so it's not included in the final BTF. > > > > > > I'll look into how exactly things end up in vmlinux.h. > > > At least the headers for 'struct bpf_wq' are always included somewhere. > > > But maybe the type also needs to be used to define some structure. > > > > > > > I paged out how we can ignore selftests based on the .config, so if you > > > > have any hints, that would be nice :) > > > > > > Inspecting the kernel configuration might be hard, as there might be no file > > > for it available. Could you use vmlinux.h itself for feature detection? > > > > > > > Actually I think I remember the rationale: > > - because working with config is hard, we just hide any struct > > definition we need in progs/hid_bpf_helpers.h before including > > vmlinux.h > > - then we manually define them > > > > So it looks like this is a step I forgot to make when I added the last > > few bits: redefine struct bpf_wq and struct hid_device. > > That makes sense. Thanks for checking. > > > Technically we shouldn't even need to redefine the entire struct, but > > only the bits we are accessing, because bpf with CO-RE will do the > > offsets for us :) > > > > Would the following patch fixes the issue?: > > I expect so. However none of the other bot (re-b)builds reproduced this > issue, so I can't validate it. I'll put this down as some sort of fluke > that it occurred while building my patch, especially given all the other > weirdness in that report. Your patch should fix it for good. Thanks. For reference, submitted here: https://lore.kernel.org/linux-input/20260313-wip-bpf-fixes-v1-1-74b860315060@kernel.org/T/#u Cheers, Benjamin > > > --- > > From bf4030f8116a4bcafe9f8d84f3d03dd2eedc58a4 Mon Sep 17 00:00:00 2001 > > From: Benjamin Tissoires <bentiss@kernel.org> > > Date: Thu, 12 Mar 2026 18:29:40 +0100 > > Subject: [PATCH] selftests/hid: fix compilation when bpf_wq and hid_device are > > not exported > > > > This can happen in situations when CONFIG_HID_SUPPORT is set to no, or > > some complex situations where struct bpf_wq is not exported. > > > > So do the usual dance of hiding them before including vmlinux.h, and > > then redefining them and make use of CO-RE to have the correct offsets. > > > > Signed-off-by: Benjamin Tissoires <bentiss@kernel.org> > > --- > > tools/testing/selftests/hid/progs/hid_bpf_helpers.h | 12 ++++++++++++ > > 1 file changed, 12 insertions(+) > > > > diff --git a/tools/testing/selftests/hid/progs/hid_bpf_helpers.h b/tools/testing/selftests/hid/progs/hid_bpf_helpers.h > > index 80ab60905865..2c6ec907dd05 100644 > > --- a/tools/testing/selftests/hid/progs/hid_bpf_helpers.h > > +++ b/tools/testing/selftests/hid/progs/hid_bpf_helpers.h > > @@ -8,9 +8,11 @@ > > /* "undefine" structs and enums in vmlinux.h, because we "override" them below */ > > #define hid_bpf_ctx hid_bpf_ctx___not_used > > #define hid_bpf_ops hid_bpf_ops___not_used > > +#define hid_device hid_device___not_used > > #define hid_report_type hid_report_type___not_used > > #define hid_class_request hid_class_request___not_used > > #define hid_bpf_attach_flags hid_bpf_attach_flags___not_used > > +#define bpf_wq bpf_wq___not_used > > #define HID_INPUT_REPORT HID_INPUT_REPORT___not_used > > #define HID_OUTPUT_REPORT HID_OUTPUT_REPORT___not_used > > #define HID_FEATURE_REPORT HID_FEATURE_REPORT___not_used > > @@ -29,9 +31,11 @@ > > > > #undef hid_bpf_ctx > > #undef hid_bpf_ops > > +#undef hid_device > > #undef hid_report_type > > #undef hid_class_request > > #undef hid_bpf_attach_flags > > +#undef bpf_wq > > #undef HID_INPUT_REPORT > > #undef HID_OUTPUT_REPORT > > #undef HID_FEATURE_REPORT > > @@ -55,6 +59,14 @@ enum hid_report_type { > > HID_REPORT_TYPES, > > }; > > > > +struct hid_device { > > + unsigned int id; > > +} __attribute__((preserve_access_index)); > > + > > +struct bpf_wq { > > + __u64 __opaque[2]; > > +}; > > + > > struct hid_bpf_ctx { > > struct hid_device *hid; > > __u32 allocated_size; > > -- > > 2.52.0 > > --- > > > > Cheers, > > Benjamin > > > > > > > > Thomas > > > > > > > > On Wed, Mar 11, 2026 at 03:29:54PM +0100, kernel test robot wrote: > > > > > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/vdso > > > > > > head: f7178f159b2a36d070fd43b0d751e4e4415ec39e > > > > > > commit: 912632a7fd4cc1eac2778828d92e8fe46939d6bd [37/45] vdso/datapage: Trim down unnecessary includes > > > > > > config: riscv-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20260311/202603111558.KLCIxsZB-lkp@intel.com/config) > > > > > > compiler: riscv64-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0 > > > > > > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260311/202603111558.KLCIxsZB-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/202603111558.KLCIxsZB-lkp@intel.com/ > > > > > > > > > > > > All errors (new ones prefixed by >>): > > > > > > > > > > > > In file included from progs/hid.c:3: > > > > > > >> progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > > > > > > 117 | extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; > > > > > > | ^ > > > > > > progs/hid_bpf_helpers.h:118:32: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > > > > > > 118 | extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; > > > > > > | ^ > > > > > > progs/hid_bpf_helpers.h:119:39: error: declaration of 'struct bpf_wq' will not be visible outside of this function [-Werror,-Wvisibility] > > > > > > 119 | extern int bpf_wq_set_callback(struct bpf_wq *wq, > > > > > > | ^ > > > > > > >> progs/hid.c:448:16: error: field has incomplete type 'struct bpf_wq' > > > > > > 448 | struct bpf_wq work; > > > > > > | ^ > > > > > > progs/hid.c:448:9: note: forward declaration of 'struct bpf_wq' > > > > > > 448 | struct bpf_wq work; > > > > > > | ^ > > > > > > >> progs/hid.c:487:18: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > > > > > > 487 | if (bpf_wq_init(wq, &hmap, 0) != 0) > > > > > > | ^~ > > > > > > progs/hid_bpf_helpers.h:117:39: note: passing argument to parameter 'wq' here > > > > > > 117 | extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; > > > > > > | ^ > > > > > > progs/hid.c:490:26: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > > > > > > 490 | if (bpf_wq_set_callback(wq, wq_cb_sleepable, 0)) > > > > > > | ^~ > > > > > > progs/hid_bpf_helpers.h:119:47: note: passing argument to parameter 'wq' here > > > > > > 119 | extern int bpf_wq_set_callback(struct bpf_wq *wq, > > > > > > | ^ > > > > > > progs/hid.c:493:19: error: incompatible pointer types passing 'struct bpf_wq *' to parameter of type 'struct bpf_wq *' [-Wincompatible-pointer-types] > > > > > > 493 | if (bpf_wq_start(wq, 0)) > > > > > > | ^~ > > > > > > progs/hid_bpf_helpers.h:118:40: note: passing argument to parameter 'wq' here > > > > > > 118 | extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; > > > > > > | ^ > > > > > > progs/hid.c:503:24: error: incomplete definition of type 'struct hid_device' > > > > > > 503 | int hid = hid_ctx->hid->id; > > > > > > | ~~~~~~~~~~~~^ > > > > > > progs/hid_bpf_helpers.h:59:9: note: forward declaration of 'struct hid_device' > > > > > > 59 | struct hid_device *hid; > > > > > > | ^ > > > > > > 8 errors generated. > > > > > > > > > > > > -- > > > > > > 0-DAY CI Kernel Test Service > > > > > > https://github.com/intel/lkp-tests/wiki > > > > > > > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-03-13 8:52 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-03-11 14:29 [tip:timers/vdso 37/45] progs/hid_bpf_helpers.h:117:31: error: declaration of 'struct bpf_wq' will not be visible outside of this function kernel test robot 2026-03-11 15:09 ` Thomas Weißschuh 2026-03-11 17:05 ` Benjamin Tissoires 2026-03-12 6:46 ` Thomas Weißschuh 2026-03-12 17:34 ` Benjamin Tissoires 2026-03-13 8:20 ` Thomas Weißschuh 2026-03-13 8:51 ` Benjamin Tissoires
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox