]> git.baikalelectronics.ru Git - kernel.git/commit
tracing: Fix alignment of static buffer
authorMinchan Kim <minchan@kernel.org>
Wed, 25 Nov 2020 22:56:54 +0000 (14:56 -0800)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Tue, 1 Dec 2020 02:43:07 +0000 (21:43 -0500)
commitfca91e1b8d1192d60da4a420fae512f600adae51
tree6ce632720bc043a5ada50fa9483bd4504dfb5c90
parent7237f1b1a514a8485c06c47969a2125c15a37ecd
tracing: Fix alignment of static buffer

With 5.9 kernel on ARM64, I found ftrace_dump output was broken but
it had no problem with normal output "cat /sys/kernel/debug/tracing/trace".

With investigation, it seems coping the data into temporal buffer seems to
break the align binary printf expects if the static buffer is not aligned
with 4-byte. IIUC, get_arg in bstr_printf expects that args has already
right align to be decoded and seq_buf_bprintf says ``the arguments are saved
in a 32bit word array that is defined by the format string constraints``.
So if we don't keep the align under copy to temporal buffer, the output
will be broken by shifting some bytes.

This patch fixes it.

Link: https://lkml.kernel.org/r/20201125225654.1618966-1-minchan@kernel.org
Cc: <stable@vger.kernel.org>
Fixes: d2f84cc688f00 ("tracing: Do not allocate buffer in trace_find_next_entry() in atomic")
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
kernel/trace/trace.c