diff options
| author | Alexei Starovoitov <ast@kernel.org> | 2026-01-31 18:53:55 -0800 |
|---|---|---|
| committer | Andrii Nakryiko <andrii@kernel.org> | 2026-02-03 16:58:46 -0800 |
| commit | 1bfbc267ec915e58c3723a2237bf067f0c4dffa8 (patch) | |
| tree | 176344fcef3c4eada4ea0b1ba555d3ede30f0380 /kernel/static_call_inline.c | |
| parent | f11f7cf90ee09dbcf76413818063ffc38ed2d9fe (diff) | |
bpf: Enable bpf_timer and bpf_wq in any context
Refactor bpf_timer and bpf_wq to allow calling them from any context:
- add refcnt to bpf_async_cb
- map_delete_elem or map_free will drop refcnt to zero
via bpf_async_cancel_and_free()
- once refcnt is zero timer/wq_start is not allowed to make sure
that callback cannot rearm itself
- if in_hardirq defer to start/cancel operations to irq_work
Co-developed-by: Mykyta Yatsenko <yatsenko@meta.com>
Signed-off-by: Mykyta Yatsenko <yatsenko@meta.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Link: https://lore.kernel.org/bpf/20260201025403.66625-2-alexei.starovoitov@gmail.com
Diffstat (limited to 'kernel/static_call_inline.c')
0 files changed, 0 insertions, 0 deletions
