diff options
| author | Alexei Starovoitov <ast@kernel.org> | 2026-02-03 21:51:46 -0800 |
|---|---|---|
| committer | Andrii Nakryiko <andrii@kernel.org> | 2026-02-04 13:12:50 -0800 |
| commit | 64873307e888505ccc45ef049dccdcfef42d2f54 (patch) | |
| tree | 4a128d5e06280f68586417c6690c980dd26056af /rust/kernel | |
| parent | 67ee5ad27d5101be4e9e8980c0734a0423bfd0a7 (diff) | |
bpf: Add a recursion check to prevent loops in bpf_timer
Do not schedule timer/wq operation on a cpu that is in irq_work
callback that is processing async_cmds queue.
Otherwise the following loop is possible:
bpf_timer_start() -> bpf_async_schedule_op() -> irq_work_queue().
irqrestore -> bpf_async_irq_worker() -> tracepoint -> bpf_timer_start().
Fixes: 1bfbc267ec91 ("bpf: Enable bpf_timer and bpf_wq in any context")
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20260204055147.54960-4-alexei.starovoitov@gmail.com
Diffstat (limited to 'rust/kernel')
0 files changed, 0 insertions, 0 deletions
