aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/xmon/xmon.c
diff options
context:
space:
mode:
authorNathan Lynch <nathanl@linux.ibm.com>2021-05-14 11:24:20 -0500
committerMichael Ellerman <mpe@ellerman.id.au>2021-05-23 20:51:35 +1000
commit2cec178e35baf57d307c0982fd2e53055bd1e9bb (patch)
tree53e4e84b1babe9e06b57fc23cb67e23ff37eedd3 /arch/powerpc/xmon/xmon.c
parentpowerpc/kprobes: Replace ppc_optinsn by common optinsn (diff)
downloadlinux-dev-2cec178e35baf57d307c0982fd2e53055bd1e9bb.tar.xz
linux-dev-2cec178e35baf57d307c0982fd2e53055bd1e9bb.zip
powerpc/xmon: make dumping log buffer contents more reliable
Log buffer entries that are too long for dump_log_buf()'s small local buffer are: * silently discarded when a single-line entry is too long; kmsg_dump_get_line() returns true but sets &len to 0. * silently truncated to the last fitting new line when a multi-line entry is too long, e.g. register dumps from __show_regs(); this seems undetectable via the kmsg_dump API. xmon_printf()'s internal buffer is already 1KB; enlarge dump_log_buf()'s own buffer to match and make it statically allocated. Verified that this allows complete printing of register dumps on ppc64le with both CONFIG_PRINTK_TIME=y and CONFIG_PRINTK_CALLER=y. Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20210514162420.2911458-1-nathanl@linux.ibm.com
Diffstat (limited to 'arch/powerpc/xmon/xmon.c')
-rw-r--r--arch/powerpc/xmon/xmon.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index c8173e92f19d..f73c10869e64 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -2975,7 +2975,7 @@ static void
dump_log_buf(void)
{
struct kmsg_dump_iter iter;
- unsigned char buf[128];
+ static unsigned char buf[1024];
size_t len;
if (setjmp(bus_error_jmp) != 0) {