Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

authored by

Matt Bobrowski and committed by
Alexei Starovoitov
b13cddf6 ec14325c

+12
+12
kernel/bpf/bpf_lsm.c
··· 304 304 BTF_ID(func, bpf_lsm_kernel_read_file) 305 305 BTF_ID(func, bpf_lsm_kernfs_init_security) 306 306 307 + #ifdef CONFIG_SECURITY_PATH 308 + BTF_ID(func, bpf_lsm_path_unlink) 309 + BTF_ID(func, bpf_lsm_path_mkdir) 310 + BTF_ID(func, bpf_lsm_path_rmdir) 311 + BTF_ID(func, bpf_lsm_path_truncate) 312 + BTF_ID(func, bpf_lsm_path_symlink) 313 + BTF_ID(func, bpf_lsm_path_link) 314 + BTF_ID(func, bpf_lsm_path_rename) 315 + BTF_ID(func, bpf_lsm_path_chmod) 316 + BTF_ID(func, bpf_lsm_path_chown) 317 + #endif /* CONFIG_SECURITY_PATH */ 318 + 307 319 #ifdef CONFIG_KEYS 308 320 BTF_ID(func, bpf_lsm_key_free) 309 321 #endif /* CONFIG_KEYS */