Small change to allow non-sleepable global subprogs in RCU, preempt-disabled, and irq-disabled sections. For now, we don't lift the limitation for locks as it requires more analysis, and will do this one resilient spin locks land. This surfaced a bug where sleepable global subprogs were allowed in RCU read sections, that has been fixed. Tests have been added to cover various cases. Kumar Kartikeya Dwivedi (2): bpf: Summarize sleepable global subprogs selftests/bpf: Test sleepable global subprogs in atomic contexts include/linux/bpf_verifier.h | 1 + kernel/bpf/verifier.c | 50 ++++++++++----- .../selftests/bpf/prog_tests/rcu_read_lock.c | 2 + .../selftests/bpf/prog_tests/spin_lock.c | 2 + tools/testing/selftests/bpf/progs/irq.c | 62 ++++++++++++++++++- .../selftests/bpf/progs/preempt_lock.c | 40 +++++++++++- .../selftests/bpf/progs/rcu_read_lock.c | 38 ++++++++++++ .../selftests/bpf/progs/test_spin_lock_fail.c | 40 ++++++++++++ 8 files changed, 219 insertions(+), 16 deletions(-) base-commit: 0b9363131daf4227d5ae11ee677acdcfff06e938 -- 2.43.5