bpf: add small subset of SECURITY_PATH hooks to BPF sleepable_lsm_hooks list
authorMatt Bobrowski <mattbobrowski@google.com>
Fri, 8 Dec 2023 15:32:48 +0000 (15:32 +0000)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 14 Dec 2023 00:56:19 +0000 (16:56 -0800)
commitb13cddf633562b9b2c34fd63471d377019704ebe
tree3756cd5100503ce15d097203ada907c02a514bd1
parentec14325c7339bf1d40fc29bb8a0d2121cfe649aa
bpf: add small subset of SECURITY_PATH hooks to BPF sleepable_lsm_hooks list

security_path_* based LSM hooks appear to be generally missing from
the sleepable_lsm_hooks list. Initially add a small subset of them to
the preexisting sleepable_lsm_hooks list so that sleepable BPF helpers
like bpf_d_path() can be used from sleepable BPF LSM based programs.

The security_path_* hooks added in this patch are similar to the
security_inode_* counterparts that already exist in the
sleepable_lsm_hooks list, and are called in roughly similar points and
contexts. Presumably, making them OK to be also annotated as
sleepable.

Building a kernel with DEBUG_ATOMIC_SLEEP options enabled and running
reasonable workloads stimulating activity that would be intercepted by
such security hooks didn't show any splats.

Notably, I haven't added all the security_path_* LSM hooks that are
available as I don't need them at this point in time.

Signed-off-by: Matt Bobrowski <mattbobrowski@google.com>
Acked-by: KP Singh <kpsingh@kernel.org>
Link: https://lore.kernel.org/r/ZXM3IHHXpNY9y82a@google.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/bpf/bpf_lsm.c