Rule of thumb is to print interactive output to stdout and status messages to stderr. A stack dump falls into the latter category and part of the stack trace is already printed to stderr, because of use of the logging functions, which always prints there. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- arch/arm/lib64/stacktrace.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/lib64/stacktrace.c b/arch/arm/lib64/stacktrace.c index db5691a6098c..76aec734e135 100644 --- a/arch/arm/lib64/stacktrace.c +++ b/arch/arm/lib64/stacktrace.c @@ -40,9 +40,9 @@ int unwind_frame(struct stackframe *frame) static void dump_backtrace_entry(unsigned long where, unsigned long from) { #ifdef CONFIG_KALLSYMS - printf("[<%08lx>] (%pS) from [<%08lx>] (%pS)\n", where, (void *)where, from, (void *)from); + eprintf("[<%08lx>] (%pS) from [<%08lx>] (%pS)\n", where, (void *)where, from, (void *)from); #else - printf("Function entered at [<%08lx>] from [<%08lx>]\n", where, from); + eprintf("Function entered at [<%08lx>] from [<%08lx>]\n", where, from); #endif } @@ -60,7 +60,7 @@ void unwind_backtrace(struct pt_regs *regs) frame.pc = (unsigned long)unwind_backtrace; } - printf("Call trace:\n"); + eprintf("Call trace:\n"); while (1) { unsigned long where = frame.pc; int ret; -- 2.39.2