UPSTREAM: 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 Bug: 173810441 Cc: <stable@vger.kernel.org> Fixes: 8e99cf91 ("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> (cherry picked from commit 8fa655a3) Signed-off-by:
Minchan Kim <minchan@google.com> Change-Id: I217106787dd6c19eb64abb4a2eee1509f3891e75
Loading
Please sign in to comment