ARM: 9349/1: unwind: Add missing "Call trace:" line
authorKees Cook <keescook@chromium.org>
Thu, 1 Feb 2024 17:28:06 +0000 (18:28 +0100)
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Sat, 24 Feb 2024 16:47:19 +0000 (16:47 +0000)
commitdaa559570d4b81e98e5a77a5c0f2a88879a9f245
tree158b0443b78707da75cdd41d39b65e5505176ab6
parent154c56d80b8f64da92f10d94531edcd070b1af72
ARM: 9349/1: unwind: Add missing "Call trace:" line

Every other architecture in Linux includes the line "Call trace:" before
backtraces. In some cases ARM would print "Backtrace:", but this was
only via 1 specific call path, and wasn't included in CPU Oops nor things
like KASAN, UBSAN, etc that called dump_stack(). Regularize this line
so CI systems and other things (like LKDTM) that depend on parsing
"Call trace:" out of dmesg will see it for ARM.

Before this patch:

UBSAN: array-index-out-of-bounds in ../drivers/misc/lkdtm/bugs.c:376:16
index 8 is out of range for type 'char [8]'
CPU: 0 PID: 1402 Comm: cat Not tainted 6.7.0-rc2 #1
Hardware name: Generic DT based system
 dump_backtrace from show_stack+0x20/0x24
 r7:00000042 r6:00000000 r5:60070013 r4:80cf5d7c
 show_stack from dump_stack_lvl+0x88/0x98
 dump_stack_lvl from dump_stack+0x18/0x1c
 r7:00000042 r6:00000008 r5:00000008 r4:80fab118
 dump_stack from ubsan_epilogue+0x10/0x3c
 ubsan_epilogue from __ubsan_handle_out_of_bounds+0x80/0x84
...

After this patch:

UBSAN: array-index-out-of-bounds in ../drivers/misc/lkdtm/bugs.c:376:16
index 8 is out of range for type 'char [8]'
CPU: 0 PID: 1402 Comm: cat Not tainted 6.7.0-rc2 #1
Hardware name: Generic DT based system
Call trace:
 dump_backtrace from show_stack+0x20/0x24
 r7:00000042 r6:00000000 r5:60070013 r4:80cf5d7c
 show_stack from dump_stack_lvl+0x88/0x98
 dump_stack_lvl from dump_stack+0x18/0x1c
 r7:00000042 r6:00000008 r5:00000008 r4:80fab118
 dump_stack from ubsan_epilogue+0x10/0x3c
 ubsan_epilogue from __ubsan_handle_out_of_bounds+0x80/0x84
...

Link: https://lore.kernel.org/r/20240110215554.work.460-kees@kernel.org
Reported-by: Mark Brown <broonie@kernel.org>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Vladimir Murzin <vladimir.murzin@arm.com>
Cc: Zhen Lei <thunder.leizhen@huawei.com>
Cc: Keith Packard <keithpac@amazon.com>
Cc: Haibo Li <haibo.li@mediatek.com>
Cc: <linux-arm-kernel@lists.infradead.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
arch/arm/kernel/traps.c
arch/arm/kernel/unwind.c