Re: [PATCH bpf-next v3 07/13] bpf: Migrate bpf_wq_set_callback_impl() to KF_IMPLICIT_ARGS

From: Ihor Solodrai

Date: Tue Jan 20 2026 - 18:04:20 EST


On 1/20/26 2:55 PM, bot+bpf-ci@xxxxxxxxxx wrote:
>> diff --git a/tools/testing/selftests/bpf/bpf_experimental.h b/tools/testing/selftests/bpf/bpf_experimental.h
>> index 2cd9165c7348..68a49b1f77ae 100644
>> --- a/tools/testing/selftests/bpf/bpf_experimental.h
>> +++ b/tools/testing/selftests/bpf/bpf_experimental.h
>> @@ -580,11 +580,6 @@ extern void bpf_iter_css_destroy(struct bpf_iter_css *it) __weak __ksym;
>>
>> extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym;
>> extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym;
>> -extern int bpf_wq_set_callback_impl(struct bpf_wq *wq,
>> - int (callback_fn)(void *map, int *key, void *value),
>> - unsigned int flags__k, void *aux__ign) __ksym;
>> -#define bpf_wq_set_callback(timer, cb, flags) \
>> - bpf_wq_set_callback_impl(timer, cb, flags, NULL)
>
> The old bpf_wq_set_callback_impl declaration and bpf_wq_set_callback macro
> are removed here, but there does not appear to be a replacement declaration
> for the new bpf_wq_set_callback kfunc.
>
> Test files wq.c and wq_failures.c include bpf_experimental.h but do not
> include vmlinux.h. They continue to call bpf_wq_set_callback() after this

Looks like AI failed to notice, that vmlinux.h is included in
bpf_experimental.h

https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/testing/selftests/bpf/bpf_experimental.h#n4

So the old extern declaration of bpf_wq_set_callback_impl() wasn't
necessary too, although the macro was.


> change. Without an extern declaration such as:
>
> extern int bpf_wq_set_callback(struct bpf_wq *wq,
> int (callback_fn)(void *map, int *key, void *value),
> unsigned int flags) __weak __ksym;
>
> should these test files fail to compile due to the missing declaration?
> The kfunc_implicit_args.c test (from the earlier commit in this series)
> demonstrates that explicit __ksym declarations are needed for kfuncs that
> are not obtained from vmlinux.h.
>
> [ ... ]
>
>
> ---
> AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
> See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md
>
> CI run summary: https://github.com/kernel-patches/bpf/actions/runs/21190053819