diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2010-05-21 12:31:09 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-05-31 08:46:09 +0200 |
commit | 3771f0771154675d4a0ca780be2411f3cc357208 (patch) | |
tree | 106512f307e2aa0a89f92c01598d5fa75903af47 /include/trace | |
parent | 8a49542c0554af7d0073aac0ee73ee65b807ef34 (diff) |
perf_events, trace: Fix probe unregister race
tracepoint_probe_unregister() does not synchronize against the probe
callbacks, so do that explicitly. This properly serializes the callbacks
and the free of the data used therein.
Also, use this_cpu_ptr() where possible.
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1274438476.1674.1702.camel@laptop>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/trace')
-rw-r--r-- | include/trace/ftrace.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index 3d685d1f2a03..5a64905d7278 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h @@ -725,7 +725,7 @@ perf_trace_##call(void *__data, proto) \ \ { assign; } \ \ - head = per_cpu_ptr(event_call->perf_events, smp_processor_id());\ + head = this_cpu_ptr(event_call->perf_events); \ perf_trace_buf_submit(entry, __entry_size, rctx, __addr, \ __count, &__regs, head); \ } |