• S
    tracing: Fix crash when ftrace=nop on the kernel command line · ca164318
    Steven Rostedt (Red Hat) 提交于
    If ftrace=<tracer> is on the kernel command line, when that tracer is
    registered, it will be initiated by tracing_set_tracer() to execute that
    tracer.
    
    The nop tracer is just a stub tracer that is used to have no tracer
    enabled. It is assigned at early bootup as it is the default tracer.
    
    But if ftrace=nop is on the kernel command line, the registering of the
    nop tracer will call tracing_set_tracer() which will try to execute
    the nop tracer. But it expects tr->current_trace to be assigned something
    as it usually is assigned to the nop tracer. As it hasn't been assigned
    to anything yet, it causes the system to crash.
    
    The simple fix is to move the tr->current_trace = nop before registering
    the nop tracer. The functionality is still the same as the nop tracer
    doesn't do anything anyway.
    Reported-by: NPeter Zijlstra <peterz@infradead.org>
    Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
    ca164318
trace.c 148.5 KB