tracing: Fix check for cpu online when event is disabled
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Wed, 9 Mar 2016 16:58:41 +0000 (11:58 -0500)
committerSasha Levin <sasha.levin@oracle.com>
Tue, 22 Mar 2016 15:10:33 +0000 (11:10 -0400)
commit1b3ce90bcd25ea9ba08450e605df29e16387a7ca
tree22874c9b9ff4b113c1208e93a5ac64ca1ff41e16
parent3b9f9280aa1321618fc5024314aca23a8716ffd6
tracing: Fix check for cpu online when event is disabled

[ Upstream commit dc17147de328a74bbdee67c1bf37d2f1992de756 ]

Commit f37755490fe9b ("tracepoints: Do not trace when cpu is offline") added
a check to make sure that tracepoints only get called when the cpu is
online, as it uses rcu_read_lock_sched() for protection.

Commit 3a630178fd5f3 ("tracing: generate RCU warnings even when tracepoints
are disabled") added lockdep checks (including rcu checks) for events that
are not enabled to catch possible RCU issues that would only be triggered if
a trace event was enabled. Commit f37755490fe9b only stopped the warnings
when the trace event was enabled but did not prevent warnings if the trace
event was called when disabled.

To fix this, the cpu online check is moved to where the condition is added
to the trace event. This will place the cpu online check in all places that
it may be used now and in the future.

Cc: stable@vger.kernel.org # v3.18+
Fixes: f37755490fe9b ("tracepoints: Do not trace when cpu is offline")
Fixes: 3a630178fd5f3 ("tracing: generate RCU warnings even when tracepoints are disabled")
Reported-by: Sudeep Holla <sudeep.holla@arm.com>
Tested-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
include/linux/tracepoint.h