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

From: Thomas Weißschuh

Date: Wed Mar 11 2026 - 11:11:51 EST


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@xxxxxxxxx/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@xxxxxxxxx/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@xxxxxxxxx>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202603111558.KLCIxsZB-lkp@xxxxxxxxx/
>
> 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