Local storage is currently unusable in sleepable helpers. One of the important use cases of local_storage is to attach security (or performance) contextual information to kernel objects in LSM / tracing programs to be used later in the life-cyle of the object. Sometimes this context can only be gathered from sleepable programs (because it needs accesing __user pointers or helpers like bpf_ima_inode_hash). Allowing local storage to be used from sleepable programs allows such context to be managed with the benefits of local_storage. # v1 -> v2 * Generalize RCU checks (will send a separate patch for updating non local storage code where this can be used). * Add missing RCU lock checks from v1 KP Singh (2): bpf: Allow bpf_local_storage to be used by sleepable programs bpf/selftests: Update local storage selftest for sleepable programs include/linux/bpf_local_storage.h | 5 ++ kernel/bpf/bpf_inode_storage.c | 9 +++- kernel/bpf/bpf_local_storage.c | 51 ++++++++++++++----- kernel/bpf/bpf_task_storage.c | 9 +++- kernel/bpf/verifier.c | 3 ++ net/core/bpf_sk_storage.c | 8 ++- .../bpf/prog_tests/test_local_storage.c | 20 +++----- .../selftests/bpf/progs/local_storage.c | 24 ++------- 8 files changed, 77 insertions(+), 52 deletions(-) -- 2.34.1.400.ga245620fadb-goog