Re: [report] WARN_ON_ONCE() was triggered with pseudo NMI enabled

Will Deacon
2025-06-27T17:09:49Z

On Wed, Mar 12, 2025 at 05:27:50PM +0800, Zenghui Yu wrote:
> With pseudo NMI enabled, I can trigger the following splat when running
> selftests (e.g., arm64/signal/fake_sigreturn_bad_magic, which will issue
> a BRK instruction).
>
> ------------[ cut here ]------------
> WARNING: CPU: 5 PID: 386876 at ./arch/arm64/include/asm/irqflags.h:34
> send_user_sigtrap+0xc8/0xd0
> CPU: 5 UID: 0 PID: 386876 Comm: fake_sigreturn_ Kdump: loaded Not
> tainted 6.14.0-rc6-00017-g5e35b5d3ce97-dirty
> pstate: 204003c9 (nzCv DAIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> pc : send_user_sigtrap+0xc8/0xd0
> lr : brk_handler+0x3c/0xbc
> sp : ffff8000ade3be00
> pmr: 000000f0
> x29: ffff8000ade3be00 x28: ffff00209777c600 x27: 0000000000000000
> x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000400e30
> x23: ffff800082cb8458 x22: ffff800082cb83c8 x21: 00000000f200029a
> x20: ffff8000ade3beb0 x19: ffff8000ade3beb0 x18: 0000000000000000
> x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
> x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
> x11: 0000000000000000 x10: 0000000000000000 x9 : 0000000000000000
> x8 : 0000000000000000 x7 : 0000000000000000 x6 : ffff8000827e6638
> x5 : 0000000000000000 x4 : ffff8000827e6638 x3 : 0000000060000000
> x2 : ffff8000ade3c000 x1 : 0000000000000001 x0 : 00000000000000d0
> Call trace:
> send_user_sigtrap+0xc8/0xd0 (P)
> brk_handler+0x3c/0xbc
> do_debug_exception+0x68/0x110
> el0_dbg+0x28/0xb8
> el0t_64_sync_handler+0x50/0xcc
> el0t_64_sync+0x1ac/0x1b0
> ---[ end trace 0000000000000000 ]---
>
> I use mainline and the kernel is built with defconfig + ARM64_PSEUDO_NMI
> + ARM64_DEBUG_PRIORITY_MASKING.

This is fixed by Ada's series:

https://lore.kernel.org/r/20250620211207.773980-1-ada.coupriediaz@arm.com

Will