All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Tissoires <bentiss@kernel.org>
To: "Thomas Weißschuh" <thomas.weissschuh@linutronix.de>
Cc: Jiri Kosina <jikos@kernel.org>,
	linux-input@vger.kernel.org,  kernel test robot <lkp@intel.com>,
	oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
	 x86@kernel.org, Thomas Gleixner <tglx@kernel.org>
Subject: 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
Date: Wed, 11 Mar 2026 18:05:25 +0100	[thread overview]
Message-ID: <abGeK0FpNn5uXi8B@beelink> (raw)
In-Reply-To: <20260311160618-dbfa08f6-8cfa-4f81-94a2-d6d97f79ae93@linutronix.de>

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
> 

  reply	other threads:[~2026-03-11 17:06 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=abGeK0FpNn5uXi8B@beelink \
    --to=bentiss@kernel.org \
    --cc=jikos@kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=tglx@kernel.org \
    --cc=thomas.weissschuh@linutronix.de \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.