linux/kernel/trace
Yonghong Song 07c41a295c 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>
2017-11-01 12:35:48 +09:00
..
blktrace.c blktrace: Fix potential deadlock between delete & sysfs ops 2017-09-25 08:56:05 -06:00
bpf_trace.c bpf: avoid rcu_dereference inside bpf_event_mutex lock region 2017-11-01 12:35:48 +09:00
ftrace.c ftrace: Fix kmemleak in unregister_ftrace_graph 2017-10-03 10:27:32 -04:00
Kconfig tracing: Rename update the enum_map file 2017-06-13 17:13:06 -04:00
Makefile perf/core: Rename CONFIG_[UK]PROBE_EVENT to CONFIG_[UK]PROBE_EVENTS 2017-03-01 10:26:39 +01:00
power-traces.c
ring_buffer_benchmark.c ring-buffer: Have ring_buffer_alloc_read_page() return error on offline CPU 2017-08-02 14:23:02 -04:00
ring_buffer.c ring-buffer: Have ring_buffer_alloc_read_page() return error on offline CPU 2017-08-02 14:23:02 -04:00
rpm-traces.c
trace_benchmark.c tracing: Have the trace_event benchmark thread call cond_resched_rcu_qs() 2017-04-17 15:21:19 -04:00
trace_benchmark.h
trace_branch.c
trace_clock.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/clock.h> 2017-03-02 08:42:27 +01:00
trace_entries.h trace: make trace_hwlat timestamp y2038 safe 2017-05-08 17:15:15 -07:00
trace_event_perf.c perf/ftrace: Fix double traces of perf on ftrace:function 2017-08-29 13:29:29 +02:00
trace_events_filter_test.h
trace_events_filter.c mm: treewide: remove GFP_TEMPORARY allocation flag 2017-09-13 18:53:16 -07:00
trace_events_hist.c sched/headers: Prepare to use <linux/rcuupdate.h> instead of <linux/rculist.h> in <linux/sched.h> 2017-03-02 08:42:38 +01:00
trace_events_trigger.c sched/headers: Prepare to use <linux/rcuupdate.h> instead of <linux/rculist.h> in <linux/sched.h> 2017-03-02 08:42:38 +01:00
trace_events.c tracing: Fix clear of RECORDED_TGID flag when disabling trace event 2017-09-05 12:00:09 -04:00
trace_export.c
trace_functions_graph.c treewide: make "nr_cpu_ids" unsigned 2017-09-08 18:26:48 -07:00
trace_functions.c ftrace: Fix regression with module command in stack_trace_filter 2017-06-29 10:05:45 -04:00
trace_hwlat.c trace: make trace_hwlat timestamp y2038 safe 2017-05-08 17:15:15 -07:00
trace_irqsoff.c
trace_kdb.c
trace_kprobe.c bpf: permit multiple bpf attachments for a single perf event 2017-10-25 10:47:47 +09:00
trace_mmiotrace.c tracing: Ignore mmiotrace from kernel commandline 2017-09-19 12:36:01 -04:00
trace_nop.c
trace_output.c sched/tracing: Use common task-state helpers 2017-09-29 11:02:45 +02:00
trace_output.h
trace_printk.c
trace_probe.c
trace_probe.h perf/core: Rename CONFIG_[UK]PROBE_EVENT to CONFIG_[UK]PROBE_EVENTS 2017-03-01 10:26:39 +01:00
trace_sched_switch.c tracing: Add support for recording tgid of tasks 2017-06-27 13:30:28 -04:00
trace_sched_wakeup.c sched/tracing: Use common task-state helpers 2017-09-29 11:02:45 +02:00
trace_selftest_dynamic.c
trace_selftest.c ftrace: Fix selftest goto location on error 2017-09-01 12:04:09 -04:00
trace_seq.c
trace_stack.c tracing: Remove RCU work arounds from stack tracer 2017-09-23 16:50:20 -04:00
trace_stat.c
trace_stat.h
trace_syscalls.c bpf: permit multiple bpf attachments for a single perf event 2017-10-25 10:47:47 +09:00
trace_uprobe.c bpf: permit multiple bpf attachments for a single perf event 2017-10-25 10:47:47 +09:00
trace.c tracing: Fix trace_pipe behavior for instance traces 2017-09-19 18:33:42 -04:00
trace.h tracing: Ignore mmiotrace from kernel commandline 2017-09-19 12:36:01 -04:00
tracing_map.c tracing: Fix kmemleak in tracing_map_array_free() 2017-08-24 10:05:51 -04:00
tracing_map.h