Messages in this thread Patch in this message | | | From | Roman Gushchin <> | Subject | [PATCH v2 bpf 4/5] bpf: add missing rcu_dereference() in bpf_prog_array_delete_safe() | Date | Fri, 13 Jul 2018 12:41:13 -0700 |
| |
There is a missing rcu_dereference() in bpf_prog_array_delete_safe(). The progs argument is a __rcu pointer, so dereferencing should be performed using rcu_dereference(), as, for example, in bpf_prog_array_length().
This patch helps to remove the following sparse warning: kernel/bpf/core.c:1629:34: warning: incorrect type in initializer (different address spaces)
Fixes: 324bda9e6c5a ("bpf: multi program support for cgroup+bpf") Signed-off-by: Roman Gushchin <guro@fb.com> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Daniel Borkmann <daniel@iogearbox.net> --- kernel/bpf/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c index fdf961f70deb..722ae6913dc0 100644 --- a/kernel/bpf/core.c +++ b/kernel/bpf/core.c @@ -1625,7 +1625,7 @@ int bpf_prog_array_copy_to_user(struct bpf_prog_array __rcu *progs, void bpf_prog_array_delete_safe(struct bpf_prog_array __rcu *progs, struct bpf_prog *old_prog) { - struct bpf_prog **prog = progs->progs; + struct bpf_prog **prog = rcu_dereference(progs)->progs; for (; *prog; prog++) if (*prog == old_prog) { -- 2.14.4
| |