tracing: Include module.h in define_trace.h
authorSteven Rostedt <srostedt@redhat.com>
Fri, 7 Jan 2011 20:40:10 +0000 (15:40 -0500)
committerSteven Rostedt <rostedt@goodmis.org>
Fri, 7 Jan 2011 20:44:56 +0000 (15:44 -0500)
While doing some developing, Peter Zijlstra and I have found
that if a CREATE_TRACE_POINTS include is done before module.h
is included, it can break the build.

We have been lucky so far that this has not broke the build
since module.h is included in almost everything.

Reported-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
include/trace/define_trace.h

index b0b4eb24d592fb1f8ecba11294c10e802ff7cd2b..da39b22636f711548b7e6300a5ebf2b7699ed019 100644 (file)
 #undef CREATE_TRACE_POINTS
 
 #include <linux/stringify.h>
+/*
+ * module.h includes tracepoints, and because ftrace.h
+ * pulls in module.h:
+ *  trace/ftrace.h -> linux/ftrace_event.h -> linux/perf_event.h ->
+ *  linux/ftrace.h -> linux/module.h
+ * we must include module.h here before we play with any of
+ * the TRACE_EVENT() macros, otherwise the tracepoints included
+ * by module.h may break the build.
+ */
+#include <linux/module.h>
 
 #undef TRACE_EVENT
 #define TRACE_EVENT(name, proto, args, tstruct, assign, print) \