Commit 3b1679e0 authored by Andrei-Alexandru Tachici's avatar Andrei-Alexandru Tachici Committed by Steven Rostedt (Google)
Browse files

tracing: Fix enabling multiple events on the kernel command line and bootconfig

Multiple events can be enabled on the kernel command line via a comma
separator. But if the are specified one at a time, then only the last
event is enabled. This is because the event names are saved in a temporary
buffer, and each call by the init cmdline code will reset that buffer.

This also affects names in the boot config file, as it may call the
callback multiple times with an example of:

  kernel.trace_event = ":mod:rproc_qcom_common", ":mod:qrtr", ":mod:qcom_aoss"

Change the cmdline callback function to append a comma and the next value
if the temporary buffer already has content.

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Link: https://patch.msgid.link/20260302-trace-events-allow-multiple-modules-v1-1-ce4436e37fb8@oss.qualcomm.com


Signed-off-by: default avatarAndrei-Alexandru Tachici <andrei-alexandru.tachici@oss.qualcomm.com>
Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
parent 457965c1
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -4493,7 +4493,11 @@ static char bootup_event_buf[COMMAND_LINE_SIZE] __initdata;

static __init int setup_trace_event(char *str)
{
	strscpy(bootup_event_buf, str, COMMAND_LINE_SIZE);
	if (bootup_event_buf[0] != '\0')
		strlcat(bootup_event_buf, ",", COMMAND_LINE_SIZE);

	strlcat(bootup_event_buf, str, COMMAND_LINE_SIZE);

	trace_set_ring_buffer_expanded(NULL);
	disable_tracing_selftest("running event tracing");