bpf: Fix usage of trace RCU in local storage.
bpf_{sk,task,inode}_storage_free() do not need to use call_rcu_tasks_trace as no BPF program should be accessing the owner as it's being destroyed. The only other reader at this point is bpf_local_storage_map_free() which uses normal RCU. The only path that needs trace RCU are: * bpf_local_storage_{delete,update} helpers * map_{delete,update}_elem() syscalls Fixes: 0fe4b381 ("bpf: Allow bpf_local_storage to be used by sleepable programs") Signed-off-by:KP Singh <kpsingh@kernel.org> Signed-off-by:
Alexei Starovoitov <ast@kernel.org> Acked-by:
Martin KaFai Lau <kafai@fb.com> Link: https://lore.kernel.org/bpf/20220418155158.2865678-1-kpsingh@kernel.org
Showing
- include/linux/bpf_local_storage.h 2 additions, 2 deletionsinclude/linux/bpf_local_storage.h
- kernel/bpf/bpf_inode_storage.c 2 additions, 2 deletionskernel/bpf/bpf_inode_storage.c
- kernel/bpf/bpf_local_storage.c 19 additions, 10 deletionskernel/bpf/bpf_local_storage.c
- kernel/bpf/bpf_task_storage.c 2 additions, 2 deletionskernel/bpf/bpf_task_storage.c
- net/core/bpf_sk_storage.c 3 additions, 3 deletionsnet/core/bpf_sk_storage.c
Loading
Please register or sign in to comment