lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAFLxGvxZJv_A+YKCxVcd4yxPXLhHD5L9VzkvbFKPytxXc5vWaw@mail.gmail.com>
Date: Sat, 16 Aug 2025 14:04:34 +0200
From: Richard Weinberger <richard.weinberger@...il.com>
To: Steven Rostedt <rostedt@...dmis.org>, rmk+kernel@....linux.org.uk
Cc: Linus Torvalds <torvalds@...ux-foundation.org>, LKML <linux-kernel@...r.kernel.org>, 
	Gabriele Monaco <gmonaco@...hat.com>, Nam Cao <namcao@...utronix.de>, 
	John Kacur <jkacur@...hat.com>, Tomas Glozar <tglozar@...hat.com>, 
	linux-arm-kernel@...ts.infradead.org
Subject: Re: [GIT PULL] runtime verification: Updates for 6.17

[Adding ARM folks]

On Tue, Jul 29, 2025 at 11:43 PM Steven Rostedt <rostedt@...dmis.org> wrote:
> Linus,
>
> Runtime verification changes for 6.17

[...]

> - Add a vpanic() to allow for va_list to be passed to panic.

This change is causing a regression on ARM32.
panic() no longer shows a proper stack trace.

With this change:
[    2.943690] Kernel panic - not syncing: VFS: Unable to mount root
fs on unknown-block(0,0)
[    2.950101] CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted
6.17.0-rc1 #176 NONE
[    2.950509] Hardware name: Generic DT based system
[    2.950865] Call trace:
[    2.951722]  unwind_backtrace from show_stack+0x18/0x1c
[    2.953111]  show_stack from dump_stack_lvl+0x54/0x68
[    2.953312]  dump_stack_lvl from vpanic+0xf8/0x388
[    2.953526]  vpanic from __do_trace_suspend_resume+0x0/0x50

With commit  3f045de7f5 "panic: Add vpanic()" reverted:
[    2.680077] Kernel panic - not syncing: VFS: Unable to mount root
fs on unknown-block(0,0)
[    2.690241] CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted
6.17.0-rc1-dirty #177 NONE
[    2.690832] Hardware name: Generic DT based system
[    2.691339] Call trace:
[    2.692530]  unwind_backtrace from show_stack+0x18/0x1c
[    2.694283]  show_stack from dump_stack_lvl+0x54/0x68
[    2.694536]  dump_stack_lvl from panic+0x110/0x31c
[    2.694944]  panic from mount_root_generic+0x1fc/0x2ac
[    2.695399]  mount_root_generic from prepare_namespace+0x200/0x258
[    2.695723]  prepare_namespace from kernel_init+0x20/0x140
[    2.695974]  kernel_init from ret_from_fork+0x14/0x28

The change itself looks fine, so I suspect it uncovers a deeper
problem with panic().
Maybe it changes the stack layout enough such that dump_stack() on
ARM32 is no longer
able to walk it? I'm using gcc 15.1.1, if this matters.

To reproduce the issue using qemu, build a multi_v7_defconfig zImage and run:
qemu-system-arm -m 512 -M virt -kernel arch/arm/boot/zImage
-no-reboot -nographic -append "console=ttyAMA0 panic=1"
It will fail to mount a rootfs and panic.

-- 
Thanks,
//richard

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ