Commit 0632a6d8 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Rich Felker

sh: dump_stack: Fix broken lines and ptrval in calltrace dumps

Rejoin the broken lines by dropping the log level parameters and using
pr_cont().
Use "%px" to print sensible addresses in call traces.
Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarRich Felker <dalias@libc.org>
parent 9b9fae8b
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
#include <asm/unwinder.h> #include <asm/unwinder.h>
#include <asm/stacktrace.h> #include <asm/stacktrace.h>
void dump_mem(const char *str, const char *loglvl, void dump_mem(const char *str, const char *loglvl, unsigned long bottom,
unsigned long bottom, unsigned long top) unsigned long top)
{ {
unsigned long p; unsigned long p;
int i; int i;
...@@ -31,23 +31,23 @@ void dump_mem(const char *str, const char *loglvl, ...@@ -31,23 +31,23 @@ void dump_mem(const char *str, const char *loglvl,
unsigned int val; unsigned int val;
if (p < bottom || p >= top) if (p < bottom || p >= top)
printk("%s ", loglvl); pr_cont(" ");
else { else {
if (__get_user(val, (unsigned int __user *)p)) { if (__get_user(val, (unsigned int __user *)p)) {
printk("%s\n", loglvl); pr_cont("\n");
return; return;
} }
printk("%s%08x ", loglvl, val); pr_cont("%08x ", val);
} }
} }
printk("%s\n", loglvl); pr_cont("\n");
} }
} }
void printk_address(unsigned long address, int reliable) void printk_address(unsigned long address, int reliable)
{ {
printk(" [<%p>] %s%pS\n", (void *) address, pr_cont(" [<%px>] %s%pS\n", (void *) address,
reliable ? "" : "? ", (void *) address); reliable ? "" : "? ", (void *) address);
} }
#ifdef CONFIG_FUNCTION_GRAPH_TRACER #ifdef CONFIG_FUNCTION_GRAPH_TRACER
...@@ -137,7 +137,7 @@ void show_trace(struct task_struct *tsk, unsigned long *sp, ...@@ -137,7 +137,7 @@ void show_trace(struct task_struct *tsk, unsigned long *sp,
unwind_stack(tsk, regs, sp, &print_trace_ops, (void *)loglvl); unwind_stack(tsk, regs, sp, &print_trace_ops, (void *)loglvl);
printk("%s\n", loglvl); pr_cont("\n");
if (!tsk) if (!tsk)
tsk = current; tsk = current;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment