[PATCH 1/4] KVM: arm64: Enable Pointer Authentication at EL2 if available

Marc Zyngier
2020-06-15T08:20:10Z

While initializing EL2, switch Pointer Authentication if detected
from EL1. We use the EL1-provided keys though.

Signed-off-by: Marc Zyngier <maz@kernel.org>
---
arch/arm64/kvm/hyp-init.S | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/arch/arm64/kvm/hyp-init.S b/arch/arm64/kvm/hyp-init.S
index 6e6ed5581eed..81732177507d 100644
--- a/arch/arm64/kvm/hyp-init.S
+++ b/arch/arm64/kvm/hyp-init.S
@@ -104,6 +104,17 @@ alternative_else_nop_endif
*/
mov_q x4, (SCTLR_EL2_RES1 | (SCTLR_ELx_FLAGS & ~SCTLR_ELx_A))
CPU_BE( orr x4, x4, #SCTLR_ELx_EE)
+alternative_if ARM64_HAS_ADDRESS_AUTH_ARCH
+ b 1f
+alternative_else_nop_endif
+alternative_if_not ARM64_HAS_ADDRESS_AUTH_IMP_DEF
+ b 2f
+alternative_else_nop_endif
+1:
+ orr x4, x4, #(SCTLR_ELx_ENIA | SCTLR_ELx_ENIB)
+ orr x4, x4, #SCTLR_ELx_ENDA
+ orr x4, x4, #SCTLR_ELx_ENDB
+2:
msr sctlr_el2, x4
isb

--
2.27.0