set_ftrace_early_graph() sets pointers without any explicit release-barriers. Let us use rcu_assign_pointer() to ensure the same. Note that ftrace_early_graph() calls ftrace_graph_set_hash() which does do mutex_unlock(&ftrace_lock); which should imply a release barrier. However it is better to not depend on it and just use rcu_assign_pointer() which should also avoid sparse errors in the future. Signed-off-by: Joel Fernandes (Google) <joel@xxxxxxxxxxxxxxxxx> --- kernel/trace/ftrace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 959ded08dc13f..340d30557a10e 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -5477,9 +5477,9 @@ static void __init set_ftrace_early_graph(char *buf, int enable) } if (enable) - ftrace_graph_hash = hash; + rcu_assign_pointer(ftrace_graph_hash, hash); else - ftrace_graph_notrace_hash = hash; + rcu_assign_pointer(ftrace_graph_notrace_hash, hash); } #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ -- 2.25.0.341.g760bfbb309-goog