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@xxxxxxxxxx> --- 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, -- Benjamin Tissoires <bentiss@xxxxxxxxxx>