summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorJosef Bacik <josef@toxicpanda.com>2026-10-17 16:37:25 +0000
committerAlexei Starovoitov <ast@kernel.org>2026-10-17 22:01:14 +0000
commit927c9c985f3ef4d30c086884b7e0ecb933f742ef (patch)
tree7afec02aae73c3e4329f30986d1fefe9b94ae822 /include/linux
parent1e28a5e52d32b7d3f4c9fb24898774f941166d2b (diff)
downloadlinux-927c9c985f3ef4d30c086884b7e0ecb933f742ef.tar.gz
linux-927c9c985f3ef4d30c086884b7e0ecb933f742ef.zip
bpf: Count sleepable callbacks as sleepable map users
map->sleepable_refcnt tells bpf_map_fd_put_ptr() whether an inner map that is taken out of its outer map has to wait for an RCU Tasks Trace grace period as well. It counts the sleepable programs that use the outer map. The bpf_wq or bpf_task_work callback of a program that is not sleepable runs under rcu_read_lock_trace() only, and is not counted. Such a callback can look an inner map up and keep it while user space deletes it from the outer map. The inner map is freed behind a plain RCU grace period, under the callback: BUG: KASAN: slab-use-after-free in array_map_update_elem+0x6bc/0x7d0 Count a program with such a callback. The maps are bound before the verifier meets the callback, so raise the count of those that are bound when it does. Fixes: 8e83da9732d9 ("bpf: add bpf_wq_start") Signed-off-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://patch.msgid.link/20261017163745.3341787-24-alexei.starovoitov@gmail.com
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions