diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-init.S b/arch/arm64/kvm/hyp/nvhe/hyp-init.S index 96940d81e002..9da86976d61d 100644 --- a/arch/arm64/kvm/hyp/nvhe/hyp-init.S +++ b/arch/arm64/kvm/hyp/nvhe/hyp-init.S @@ -95,9 +95,13 @@ SYM_CODE_START_LOCAL(___kvm_hyp_init) ldr x1, [x0, #NVHE_INIT_HCR_EL2] msr hcr_el2, x1 + mrs x1, ID_AA64MMFR0_EL1 + and x1, x1, #(0xf << ID_AA64MMFR0_EL1_FGT_SHIFT) + cbz x1, 1f ldr x1, [x0, #NVHE_INIT_HFGWTR_EL2] msr_s SYS_HFGWTR_EL2, x1 +1: ldr x1, [x0, #NVHE_INIT_VTTBR] msr vttbr_el2, x1