bpf: avoid rcu_dereference inside bpf_event_mutex lock region
authorYonghong Song <yhs@fb.com>
Mon, 30 Oct 2017 20:50:22 +0000 (13:50 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 1 Nov 2017 03:35:48 +0000 (12:35 +0900)
commit07c41a295c5f25928a7cb689fdec816bd0089fe8
tree069bf405b725d169ce806019e0d4a612d31b456c
parent3051fbec206eb6967b7fdecedb63ebb1ed67a1a7
bpf: avoid rcu_dereference inside bpf_event_mutex lock region

During perf event attaching/detaching bpf programs,
the tp_event->prog_array change is protected by the
bpf_event_mutex lock in both attaching and deteching
functions. Although tp_event->prog_array is a rcu
pointer, rcu_derefrence is not needed to access it
since mutex lock will guarantee ordering.

Verified through "make C=2" that sparse
locking check still happy with the new change.

Also change the label name in perf_event_{attach,detach}_bpf_prog
from "out" to "unlock" to reflect the code action after the label.

Signed-off-by: Yonghong Song <yhs@fb.com>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
kernel/trace/bpf_trace.c