On Tue, 14 Oct 2025 10:25:36 +0100, Ada Couprie Diaz wrote:
EL0 exception handlers should always call `exit_to_user_mode()` with interrupts unmasked. When handling a completed single-step, we skip the if block and `local_daif_restore(DAIF_PROCCTX)` never gets called, which ends up calling `exit_to_user_mode()` with interrupts masked.
This is broken if pNMI is in use, as `do_notify_resume()` will try to enable interrupts, but `local_irq_enable()` will only change the PMR, leaving interrupts masked via DAIF.
[...]
Applied to arm64 (for-next/fixes), thanks! I used Mark's commit log.
[1/1] arm64: debug: always unmask interrupts in el0_softstp() https://git.kernel.org/arm64/c/ea0d55ae4b32