From: Yicong Yang <[email protected]>

Using FEAT_{LS64, LS64_V} instructions in a guest is also controlled
by HCRX_EL2.{EnALS, EnASR}. Enable it if guest has related feature.

Signed-off-by: Yicong Yang <[email protected]>
---
 arch/arm64/include/asm/kvm_emulate.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/include/asm/kvm_emulate.h 
b/arch/arm64/include/asm/kvm_emulate.h
index 075ddde6c626..4c7e7aa37f3e 100644
--- a/arch/arm64/include/asm/kvm_emulate.h
+++ b/arch/arm64/include/asm/kvm_emulate.h
@@ -673,6 +673,12 @@ static inline void vcpu_set_hcrx(struct kvm_vcpu *vcpu)
 
                if (kvm_has_sctlr2(kvm))
                        vcpu->arch.hcrx_el2 |= HCRX_EL2_SCTLR2En;
+
+               if (kvm_has_feat(kvm, ID_AA64ISAR1_EL1, LS64, LS64))
+                       vcpu->arch.hcrx_el2 |= HCRX_EL2_EnALS;
+
+               if (kvm_has_feat(kvm, ID_AA64ISAR1_EL1, LS64, LS64_V))
+                       vcpu->arch.hcrx_el2 |= HCRX_EL2_EnASR;
        }
 }
 #endif /* __ARM64_KVM_EMULATE_H__ */
-- 
2.24.0


Reply via email to