Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 669336e4 authored by Frederic Weisbecker's avatar Frederic Weisbecker
Browse files

perf: Use tracepoint_synchronize_unregister() to flush any pending tracepoint call



We use synchronize_sched() to ensure a tracepoint won't be called
while/after we release the perf buffers it references.

But the tracepoint API has its own API for that:
tracepoint_synchronize_unregister(). Use it instead as it's
self-explanatory and eases maintainance.

Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Li Zefan <lizf@cn.fujitsu.com>
parent 3a01736e
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -131,10 +131,10 @@ void perf_trace_destroy(struct perf_event *p_event)
	tp_event->class->reg(tp_event, TRACE_REG_PERF_UNREGISTER);

	/*
	 * Ensure our callback won't be called anymore. See
	 * tracepoint_probe_unregister() and __DO_TRACE().
	 * Ensure our callback won't be called anymore. The buffers
	 * will be freed after that.
	 */
	synchronize_sched();
	tracepoint_synchronize_unregister();

	free_percpu(tp_event->perf_events);
	tp_event->perf_events = NULL;