I realized this while having a map containing both a struct bpf_timer and a struct bpf_wq: the third argument provided to the bpf_wq callback is not the struct bpf_wq pointer itself, but the pointer to the value in the map.
Which means that the users need to double cast the provided "value" as this is not a struct bpf_wq *.
This is a change of API, but there doesn't seem to be much users of bpf_wq right now, so we should be able to go with this right now.
Signed-off-by: Benjamin Tissoires bentiss@kernel.org --- Benjamin Tissoires (2): bpf: helpers: fix bpf_wq_set_callback_impl signature selftests/bpf: amend for wrong bpf_wq_set_callback_impl signature
kernel/bpf/helpers.c | 2 +- tools/testing/selftests/bpf/bpf_experimental.h | 2 +- tools/testing/selftests/bpf/progs/wq.c | 8 ++++---- tools/testing/selftests/bpf/progs/wq_failures.c | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) --- base-commit: fd8db07705c55a995c42b1e71afc42faad675b0b change-id: 20240705-fix-wq-f069c7fb36c3
Best regards,