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

To prevent default "trace_printks()" from spamming the top level tracing
ring buffer, only allow trace instances to use trace_array_printk() (which
can be used without the trace_printk() start up warning).

Signed-off-by: Steven Rostedt (VMware) <rost...@goodmis.org>
---
 kernel/trace/trace.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index bb62269724d5..8241d1448d70 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -3346,12 +3346,16 @@ int trace_array_printk(struct trace_array *tr,
        int ret;
        va_list ap;
 
-       if (!(global_trace.trace_flags & TRACE_ITER_PRINTK))
-               return 0;
-
        if (!tr)
                return -ENOENT;
 
+       /* This is only allowed for created instances */
+       if (tr == &global_trace)
+               return 0;
+
+       if (!(tr->trace_flags & TRACE_ITER_PRINTK))
+               return 0;
+
        va_start(ap, fmt);
        ret = trace_array_vprintk(tr, ip, fmt, ap);
        va_end(ap);
-- 
2.26.2


Reply via email to