Adding initialization check in trace_printk for *puts paths, plus unifying the check for all related cases.
Cc: Steven Rostedt <[email protected]> Cc: Frederic Weisbecker <[email protected]> Cc: Ingo Molnar <[email protected]> --- kernel/trace/trace.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 882ec1d..cb7cf96 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -126,6 +126,9 @@ static char *default_bootup_tracer; static bool allocate_snapshot; +#define TRACE_PRINTK_DENIED \ + unlikely(tracing_selftest_running || tracing_disabled) + static int __init set_cmdline_ftrace(char *str) { strlcpy(bootup_tracer_buf, str, MAX_TRACER_SIZE); @@ -430,6 +433,9 @@ int __trace_puts(unsigned long ip, const char *str, int size) unsigned long irq_flags; int alloc; + if (TRACE_PRINTK_DENIED) + return 0; + alloc = sizeof(*entry) + size + 2; /* possible \n added */ local_save_flags(irq_flags); @@ -470,6 +476,9 @@ int __trace_bputs(unsigned long ip, const char *str) unsigned long irq_flags; int size = sizeof(struct bputs_entry); + if (TRACE_PRINTK_DENIED) + return 0; + local_save_flags(irq_flags); buffer = global_trace.trace_buffer.buffer; event = trace_buffer_lock_reserve(buffer, TRACE_BPUTS, size, @@ -1757,7 +1766,7 @@ void trace_dump_stack(int skip) { unsigned long flags; - if (tracing_disabled || tracing_selftest_running) + if (TRACE_PRINTK_DENIED) return; local_save_flags(flags); @@ -1976,7 +1985,7 @@ int trace_vbprintk(unsigned long ip, const char *fmt, va_list args) char *tbuffer; int len = 0, size, pc; - if (unlikely(tracing_selftest_running || tracing_disabled)) + if (TRACE_PRINTK_DENIED) return 0; /* Don't pollute graph traces with trace_vprintk internals */ @@ -2032,7 +2041,7 @@ __trace_array_vprintk(struct ring_buffer *buffer, unsigned long flags; char *tbuffer; - if (tracing_disabled || tracing_selftest_running) + if (TRACE_PRINTK_DENIED) return 0; /* Don't pollute graph traces with trace_vprintk internals */ -- 1.7.11.7 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

