kernel_optimize_test/kernel/bpf
Alexei Starovoitov f56407fa6e bpf: Remove bpf_lsm_file_mprotect from sleepable list.
Technically the bpf programs can sleep while attached to bpf_lsm_file_mprotect,
but such programs need to access user memory. So they're in might_fault()
category. Which means they cannot be called from file_mprotect lsm hook that
takes write lock on mm->mmap_lock.
Adjust the test accordingly.

Also add might_fault() to __bpf_prog_enter_sleepable() to catch such deadlocks early.

Fixes: 1e6c62a882 ("bpf: Introduce sleepable BPF programs")
Fixes: e68a144547 ("selftests/bpf: Add sleepable tests")
Reported-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20200831201651.82447-1-alexei.starovoitov@gmail.com
2020-08-31 23:03:57 +02:00
..
preload bpf: Disallow BPF_PRELOAD in allmodconfig builds 2020-08-25 15:23:46 -07:00
arraymap.c bpf: Introduce sleepable BPF programs 2020-08-28 21:20:33 +02:00
bpf_inode_storage.c bpf: Add map_meta_equal map ops 2020-08-28 15:41:30 +02:00
bpf_iter.c bpf: Implement link_query for bpf iterators 2020-08-21 14:01:39 -07:00
bpf_local_storage.c bpf: Split bpf_local_storage to bpf_sk_storage 2020-08-25 15:00:04 -07:00
bpf_lru_list.c
bpf_lru_list.h
bpf_lsm.c bpf: Allow local storage to be used from LSM programs 2020-08-25 15:00:04 -07:00
bpf_struct_ops_types.h
bpf_struct_ops.c bpf: Move btf_resolve_size into __btf_resolve_size 2020-08-25 15:37:41 -07:00
btf.c bpf: Add BTF_SET_START/END macros 2020-08-25 15:37:41 -07:00
cgroup.c bpf: Add support for forced LINK_DETACH command 2020-08-01 20:38:28 -07:00
core.c bpf: Delete repeated words in comments 2020-08-07 18:57:24 +02:00
cpumap.c bpf: Add map_meta_equal map ops 2020-08-28 15:41:30 +02:00
devmap.c bpf: Add map_meta_equal map ops 2020-08-28 15:41:30 +02:00
disasm.c
disasm.h
dispatcher.c
hashtab.c bpf: Introduce sleepable BPF programs 2020-08-28 21:20:33 +02:00
helpers.c bpf: Add bpf_copy_from_user() helper. 2020-08-28 21:20:33 +02:00
inode.c bpf: Add kernel module with user mode driver that populates bpffs. 2020-08-20 16:02:36 +02:00
local_storage.c bpf/local_storage: Fix build without CONFIG_CGROUP 2020-07-25 20:16:36 -07:00
lpm_trie.c bpf: Add map_meta_equal map ops 2020-08-28 15:41:30 +02:00
Makefile bpf: Implement bpf_local_storage for inodes 2020-08-25 15:00:04 -07:00
map_in_map.c bpf: Relax max_entries check for most of the inner map types 2020-08-28 15:41:30 +02:00
map_in_map.h bpf: Add map_meta_equal map ops 2020-08-28 15:41:30 +02:00
map_iter.c bpf: Implement link_query callbacks in map element iterators 2020-08-21 14:01:39 -07:00
net_namespace.c bpf: Add support for forced LINK_DETACH command 2020-08-01 20:38:28 -07:00
offload.c
percpu_freelist.c
percpu_freelist.h
prog_iter.c bpf: Refactor bpf_iter_reg to have separate seq_info member 2020-07-25 20:16:32 -07:00
queue_stack_maps.c bpf: Add map_meta_equal map ops 2020-08-28 15:41:30 +02:00
reuseport_array.c bpf: Add map_meta_equal map ops 2020-08-28 15:41:30 +02:00
ringbuf.c bpf: Add map_meta_equal map ops 2020-08-28 15:41:30 +02:00
stackmap.c bpf: Add map_meta_equal map ops 2020-08-28 15:41:30 +02:00
syscall.c bpf: Introduce sleepable BPF programs 2020-08-28 21:20:33 +02:00
sysfs_btf.c
task_iter.c bpf: Refactor to provide aux info to bpf_iter_init_seq_priv_t 2020-07-25 20:16:32 -07:00
tnum.c
trampoline.c bpf: Remove bpf_lsm_file_mprotect from sleepable list. 2020-08-31 23:03:57 +02:00
verifier.c bpf: Remove bpf_lsm_file_mprotect from sleepable list. 2020-08-31 23:03:57 +02:00