summaryrefslogtreecommitdiff
path: root/include/linux/workqueue.h
diff options
context:
space:
mode:
authorEduard Zingerman <eddyz87@gmail.com>2025-12-31 08:36:03 +0300
committerAlexei Starovoitov <ast@kernel.org>2025-12-31 20:01:13 +0300
commit840692326e92b5deb76c224931e8ca145ce7cfb8 (patch)
tree02a15bbebc69c387cd4886c70a6f2b62fe056bfe /include/linux/workqueue.h
parentccaa6d2c9635a8db06a494d67ef123b56b967a78 (diff)
downloadlinux-840692326e92b5deb76c224931e8ca145ce7cfb8.tar.xz
bpf: allow states pruning for misc/invalid slots in iterator loops
Within an iterator or callback based loop, it should be safe to prune the current state if the old state stack slot is marked as STACK_INVALID or STACK_MISC: - either all branches of the old state lead to a program exit; - or some branch of the old state leads the current state. This is the same logic as applied in non-loop cases when states_equal() is called in NOT_EXACT mode. The test case that exercises stacksafe() and demonstrates the difference in verification performance is included in the next patch. I'm not sure if it is possible to prepare a test case that exercises regsafe(); it appears that the compute_live_registers() pass makes this impossible. Nevertheless, for code readability reasons, I think that stacksafe() and regsafe() should handle STACK_INVALID / NOT_INIT symmetrically. Hence, this commit changes both functions. Signed-off-by: Eduard Zingerman <eddyz87@gmail.com> Link: https://lore.kernel.org/r/20251230-loop-stack-misc-pruning-v1-1-585cfd6cec51@gmail.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'include/linux/workqueue.h')
0 files changed, 0 insertions, 0 deletions