From: Marc Zyngier <maz@kernel.org> Date: Tue, 13 Apr 2021 14:35:09 +0000 (+0100) Subject: Merge branch 'kvm-arm64/host-stage2' into kvmarm-master/next X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=ac5ce2456e3e68c8ab6f03be2c2af832ec0f99b5;p=linux.git Merge branch 'kvm-arm64/host-stage2' into kvmarm-master/next Signed-off-by: Marc Zyngier <maz@kernel.org> --- ac5ce2456e3e68c8ab6f03be2c2af832ec0f99b5 diff --cc arch/arm64/kvm/hyp/nvhe/switch.c index 736805232521e,5fb570e68831d..e9f6ea704d07d --- a/arch/arm64/kvm/hyp/nvhe/switch.c +++ b/arch/arm64/kvm/hyp/nvhe/switch.c @@@ -95,20 -97,16 +97,17 @@@ static void __deactivate_traps(struct k mdcr_el2 &= MDCR_EL2_HPMN_MASK; mdcr_el2 |= MDCR_EL2_E2PB_MASK << MDCR_EL2_E2PB_SHIFT; + mdcr_el2 |= MDCR_EL2_E2TB_MASK << MDCR_EL2_E2TB_SHIFT; write_sysreg(mdcr_el2, mdcr_el2); - if (is_protected_kvm_enabled()) - write_sysreg(HCR_HOST_NVHE_PROTECTED_FLAGS, hcr_el2); - else - write_sysreg(HCR_HOST_NVHE_FLAGS, hcr_el2); - write_sysreg(CPTR_EL2_DEFAULT, cptr_el2); - write_sysreg(__kvm_hyp_host_vector, vbar_el2); - } + write_sysreg(this_cpu_ptr(&kvm_init_params)->hcr_el2, hcr_el2); - static void __load_host_stage2(void) - { - write_sysreg(0, vttbr_el2); + cptr = CPTR_EL2_DEFAULT; + if (vcpu_has_sve(vcpu) && (vcpu->arch.flags & KVM_ARM64_FP_ENABLED)) + cptr |= CPTR_EL2_TZ; + + write_sysreg(cptr, cptr_el2); + write_sysreg(__kvm_hyp_host_vector, vbar_el2); } /* Save VGICv3 state on non-VHE systems */