[PATCH 08/17] arm64/hyp-stub: Enable access to ALLINT
Jinjie Ruan <[email protected]> Fri, 3 Jul 2026 18:01:26 +0800
| Newsgroups | org.kernel.vger.linux-efi,dev.linux.lists.kvmarm,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
From: Mark Brown <[email protected]> In order to use NMIs we need to ensure that traps are disabled for it so update HCRX_EL2 to ensure that TALLINT is not set when we detect support for NMIs. Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Marc Zyngier <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jinjie Ruan <[email protected]> --- arch/arm64/include/asm/el2_setup.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/arm64/include/asm/el2_setup.h b/arch/arm64/include/asm/el2_setup.h index aa8ec9df8024..73b8997f8d43 100644 --- a/arch/arm64/include/asm/el2_setup.h +++ b/arch/arm64/include/asm/el2_setup.h @@ -600,6 +600,19 @@ msr_s SYS_SMPRIMAP_EL2, xzr // Make all priorities equal .Lskip_sme_\@: + + // NMIs + __check_override id_aa64pfr1, ID_AA64PFR1_EL1_NMI_SHIFT, 4, .Linit_nmi_\@, .Lskip_nmi_\@, x1, x2 + +.Linit_nmi_\@: + mrs x1, id_aa64mmfr1_el1 // HCRX_EL2 present? + ubfx x1, x1, #ID_AA64MMFR1_EL1_HCX_SHIFT, #4 + cbz x1, .Lskip_nmi_\@ + + mrs_s x1, SYS_HCRX_EL2 + and x1, x1, # ~HCRX_EL2_TALLINT_MASK // Don't trap ALLINT + msr_s SYS_HCRX_EL2, x1 +.Lskip_nmi_\@: .endm #endif /* __ARM_KVM_INIT_H__ */ -- 2.34.1