diff options
author | Kumar Kartikeya Dwivedi <memxor@gmail.com> | 2022-11-18 04:55:58 +0300 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2022-11-18 06:11:32 +0300 |
commit | 4e814da0d59917c6d758a80e63e79b5ee212cf11 (patch) | |
tree | fb2926e68562df39adb6bfb6431fbb374ce84200 /kernel/bpf/bpf_struct_ops.c | |
parent | 865ce09a49d79d2b2c1d980f4c05ffc0b3517bdc (diff) | |
download | linux-4e814da0d59917c6d758a80e63e79b5ee212cf11.tar.xz |
bpf: Allow locking bpf_spin_lock in allocated objects
Allow locking a bpf_spin_lock in an allocated object, in addition to
already supported map value pointers. The handling is similar to that of
map values, by just preserving the reg->id of PTR_TO_BTF_ID | MEM_ALLOC
as well, and adjusting process_spin_lock to work with them and remember
the id in verifier state.
Refactor the existing process_spin_lock to work with PTR_TO_BTF_ID |
MEM_ALLOC in addition to PTR_TO_MAP_VALUE. We need to update the
reg_may_point_to_spin_lock which is used in mark_ptr_or_null_reg to
preserve reg->id, that will be used in env->cur_state->active_spin_lock
to remember the currently held spin lock.
Also update the comment describing bpf_spin_lock implementation details
to also talk about PTR_TO_BTF_ID | MEM_ALLOC type.
Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Link: https://lore.kernel.org/r/20221118015614.2013203-9-memxor@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'kernel/bpf/bpf_struct_ops.c')
0 files changed, 0 insertions, 0 deletions