In the Linux kernel, the following vulnerability has been resolved:
tracing: Make sure trace_printk() can output as soon as it can be used
Currently traceprintk() can be used as soon as earlytraceinit() is called from startkernel(). But if a crash happens, and "ftracedumpon_oops" is set on the kernel command line, all you get will be:
[ 0.456075] <idle>-0 0dN.2. 347519us : Unknown type 6 [ 0.456075] <idle>-0 0dN.2. 353141us : Unknown type 6 [ 0.456075] <idle>-0 0dN.2. 358684us : Unknown type 6
This is because the traceprintk() event (type 6) hasn't been registered yet. That gets done via an earlyinitcall(), which may be early, but not early enough.
Instead of registering the traceprintk() event (and other ftrace events, which are not trace events) via an earlyinitcall(), have them registered at the same time that traceprintk() can be used. This way, if there is a crash before earlyinitcall(), then the trace_printk()s will actually be useful.