[PATCH 08/17] arm64/hyp-stub: Enable access to ALLINT
From: Jinjie Ruan
Date: Fri Jul 03 2026 - 06:09:37 EST
From: Mark Brown <broonie@xxxxxxxxxx>
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 <broonie@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx>
Link: https://lore.kernel.org/r/20221112151708.175147-7-broonie@xxxxxxxxxx
Signed-off-by: Jinjie Ruan <ruanjinjie@xxxxxxxxxx>
---
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