diff options
author | YiFei Zhu <zhuyifei@google.com> | 2020-09-16 02:45:39 +0300 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2020-09-16 04:28:27 +0300 |
commit | 984fe94f94756dacb3c8cc52904a23adf9e04da1 (patch) | |
tree | 70c58720e1166b35434d2033abcdda63e915f6d3 /include/linux/bpf.h | |
parent | d317b0a8acfc4b126858e4cdadb03338d22f8ce0 (diff) | |
download | linux-984fe94f94756dacb3c8cc52904a23adf9e04da1.tar.xz |
bpf: Mutex protect used_maps array and count
To support modifying the used_maps array, we use a mutex to protect
the use of the counter and the array. The mutex is initialized right
after the prog aux is allocated, and destroyed right before prog
aux is freed. This way we guarantee it's initialized for both cBPF
and eBPF.
Signed-off-by: YiFei Zhu <zhuyifei@google.com>
Signed-off-by: Stanislav Fomichev <sdf@google.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Cc: YiFei Zhu <zhuyifei1999@gmail.com>
Link: https://lore.kernel.org/bpf/20200915234543.3220146-2-sdf@google.com
Diffstat (limited to 'include/linux/bpf.h')
-rw-r--r-- | include/linux/bpf.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/bpf.h b/include/linux/bpf.h index c6d9f2c444f4..5dcce0364634 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -751,6 +751,7 @@ struct bpf_prog_aux { struct bpf_ksym ksym; const struct bpf_prog_ops *ops; struct bpf_map **used_maps; + struct mutex used_maps_mutex; /* mutex for used_maps and used_map_cnt */ struct bpf_prog *prog; struct user_struct *user; u64 load_time; /* ns since boottime */ |