Skip to content

Commit f7ec412

Browse files
compudjrostedt
authored andcommitted
tracepoint: static call: Compare data on transition from 2->1 callees
On transition from 2->1 callees, we should be comparing .data rather than .func, because the same callback can be registered twice with different data, and what we care about here is that the data of array element 0 is unchanged to skip rcu sync. Link: https://lkml.kernel.org/r/20210805132717.23813-2-mathieu.desnoyers@efficios.com Link: https://lore.kernel.org/io-uring/4ebea8f0-58c9-e571-fd30-0ce4f6f09c70@samba.org/ Cc: stable@vger.kernel.org Cc: Ingo Molnar <mingo@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: "Paul E. McKenney" <paulmck@kernel.org> Cc: Stefan Metzmacher <metze@samba.org> Fixes: 547305a ("tracepoint: Fix out of sync data passing by static caller") Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 parent 51397dc commit f7ec412

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

kernel/tracepoint.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ static int tracepoint_remove_func(struct tracepoint *tp,
338338
} else {
339339
rcu_assign_pointer(tp->funcs, tp_funcs);
340340
tracepoint_update_call(tp, tp_funcs,
341-
tp_funcs[0].func != old[0].func);
341+
tp_funcs[0].data != old[0].data);
342342
}
343343
release_probes(old);
344344
return 0;

0 commit comments

Comments
 (0)