OSDN Git Service

ARM: fix backtrace
authorRussell King <rmk+kernel@armlinux.org.uk>
Tue, 15 Nov 2016 13:55:59 +0000 (13:55 +0000)
committerRussell King <rmk+kernel@armlinux.org.uk>
Tue, 15 Nov 2016 15:25:39 +0000 (15:25 +0000)
commit24c66dfd569c4744fc43aea638155ad2dc1499d8
treeaafbb0d392b4384411c0027773890cbd7ec77cb8
parent6127d124ee4eb9c39983813cc9803f3654ab7e16
ARM: fix backtrace

Recent kernels have changed their behaviour to be more inconsistent
when handling printk continuations.  With todays kernels, the output
looks sane on the console, but dmesg splits individual printk()s which
do not have the KERN_CONT prefix into separate lines.

Since the assembly code is not trivial to add the KERN_CONT, and we
ideally want to avoid using KERN_CONT (as multiple printk()s can race
between different threads), convert the assembly dumping the register
values to C code, and have the C code build the output a line at a
time before dumping to the console.

This avoids the KERN_CONT issue, and also avoids situations where the
output is intermixed with other console activity.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
arch/arm/kernel/traps.c
arch/arm/lib/backtrace.S