mbox series

[bpf-next,v2,0/2] Small API fix for bpf_wq

Message ID 20240708-fix-wq-v2-0-667e5c9fbd99@kernel.org (mailing list archive)
Headers show
Series Small API fix for bpf_wq | expand

Message

Benjamin Tissoires July 8, 2024, 9:52 a.m. UTC
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>
---
Changes in v2:
- amended the selftests to retrieve something from the third argument of
  the callback
- Link to v1: https://lore.kernel.org/r/20240705-fix-wq-v1-0-91b4d82cd825@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          | 19 ++++++++++++++-----
 tools/testing/selftests/bpf/progs/wq_failures.c |  4 ++--
 4 files changed, 18 insertions(+), 9 deletions(-)
---
base-commit: fd8db07705c55a995c42b1e71afc42faad675b0b
change-id: 20240705-fix-wq-f069c7fb36c3

Best regards,

Comments

patchwork-bot+netdevbpf@kernel.org July 8, 2024, 7:42 p.m. UTC | #1
Hello:

This series was applied to bpf/bpf-next.git (master)
by Alexei Starovoitov <ast@kernel.org>:

On Mon, 08 Jul 2024 11:52:56 +0200 you wrote:
> 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 *.
> 
> [...]

Here is the summary with links:
  - [bpf-next,v2,1/2] bpf: helpers: fix bpf_wq_set_callback_impl signature
    https://git.kernel.org/bpf/bpf-next/c/f56f4d541eab
  - [bpf-next,v2,2/2] selftests/bpf: amend for wrong bpf_wq_set_callback_impl signature
    https://git.kernel.org/bpf/bpf-next/c/16e86f2e8199

You are awesome, thank you!