mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-03 17:51:57 +09:00
tracing: Check if tracing is enabled in trace_puts()
commit3132e107d6upstream. If trace_puts() is used very early in boot up, it can crash the machine if it is called before the ring buffer is allocated. If a trace_printk() is used with no arguments, then it will be converted into a trace_puts() and suffer the same fate. Fixes:09ae72348e"tracing: Add trace_puts() for even faster trace_printk() tracing" Signed-off-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
fb23eaf401
commit
f74bb7400b
@@ -424,6 +424,9 @@ int __trace_puts(unsigned long ip, const char *str, int size)
|
||||
unsigned long irq_flags;
|
||||
int alloc;
|
||||
|
||||
if (unlikely(tracing_selftest_running || tracing_disabled))
|
||||
return 0;
|
||||
|
||||
alloc = sizeof(*entry) + size + 2; /* possible \n added */
|
||||
|
||||
local_save_flags(irq_flags);
|
||||
@@ -464,6 +467,9 @@ int __trace_bputs(unsigned long ip, const char *str)
|
||||
unsigned long irq_flags;
|
||||
int size = sizeof(struct bputs_entry);
|
||||
|
||||
if (unlikely(tracing_selftest_running || tracing_disabled))
|
||||
return 0;
|
||||
|
||||
local_save_flags(irq_flags);
|
||||
buffer = global_trace.trace_buffer.buffer;
|
||||
event = trace_buffer_lock_reserve(buffer, TRACE_BPUTS, size,
|
||||
|
||||
Reference in New Issue
Block a user