From: "Steven Rostedt (VMware)" <rost...@goodmis.org>

Add macros around the initcall_debug tracepoint code to have the code to
default back to the old method if CONFIG_TRACEPOINTS is not enabled.

Signed-off-by: Steven Rostedt (VMware) <rost...@goodmis.org>
---
 init/main.c | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/init/main.c b/init/main.c
index 589d1226016e..07f56d667c33 100644
--- a/init/main.c
+++ b/init/main.c
@@ -832,6 +832,7 @@ trace_initcall_finish_cb(void *data, initcall_t fn, int ret)
 
 static ktime_t initcall_calltime;
 
+#ifdef TRACEPOINTS_ENABLED
 static void __init initcall_debug_enable(void)
 {
        int ret;
@@ -842,6 +843,25 @@ static void __init initcall_debug_enable(void)
                                              &initcall_calltime);
        WARN(ret, "Failed to register initcall tracepoints\n");
 }
+# define do_trace_initcall_start       trace_initcall_start
+# define do_trace_initcall_finish      trace_initcall_finish
+#else
+static inline initcall_debug_enable(void)
+{
+}
+static inline void do_trace_initcall_start(initcall_t fn)
+{
+       if (!initcall_debug)
+               return;
+       trace_initcall_start_cb(&initcall_calltime, fn);
+}
+static inline void do_trace_initcall_finish(initcall_t fn, int ret)
+{
+       if (!initcall_debug)
+               return;
+       trace_initcall_finish_cb(&initcall_calltime, fn, ret);
+}
+#endif /* !TRACEPOINTS_ENABLED */
 
 int __init_or_module do_one_initcall(initcall_t fn)
 {
@@ -852,9 +872,9 @@ int __init_or_module do_one_initcall(initcall_t fn)
        if (initcall_blacklisted(fn))
                return -EPERM;
 
-       trace_initcall_start(fn);
+       do_trace_initcall_start(fn);
        ret = fn();
-       trace_initcall_finish(fn, ret);
+       do_trace_initcall_finish(fn, ret);
 
        msgbuf[0] = 0;
 
-- 
2.15.1


Reply via email to