From cd0a5c094fe26564d7a9ddd8298bd7f57ca29b35 Mon Sep 17 00:00:00 2001 From: Will Deacon Date: Thu, 7 Jul 2022 15:52:12 +0100 Subject: [PATCH] Revert "BACKPORT: FROMGIT: KVM: arm64: Move SVE state mapping at HYP to finalize-time" This reverts commit 2e8036db259dc71a2a7d44bc787f6d8bdb96ae13. Bug: 233587962 Signed-off-by: Will Deacon Change-Id: Ife6db5d19ba51bcd07345962e3b3a7b8a789eb05 --- arch/arm64/kvm/fpsimd.c | 11 +++++++++++ arch/arm64/kvm/reset.c | 11 +---------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/arch/arm64/kvm/fpsimd.c b/arch/arm64/kvm/fpsimd.c index ee3291de04be..b5b59b9f2eff 100644 --- a/arch/arm64/kvm/fpsimd.c +++ b/arch/arm64/kvm/fpsimd.c @@ -34,6 +34,17 @@ int kvm_arch_vcpu_run_map_fp(struct kvm_vcpu *vcpu) if (ret) goto error; + if (vcpu->arch.sve_state) { + void *sve_end; + + sve_end = vcpu->arch.sve_state + vcpu_sve_state_size(vcpu); + + ret = create_hyp_mappings(vcpu->arch.sve_state, sve_end, + PAGE_HYP); + if (ret) + goto error; + } + vcpu->arch.host_fpsimd_state = kern_hyp_va(fpsimd); error: return ret; diff --git a/arch/arm64/kvm/reset.c b/arch/arm64/kvm/reset.c index c2a5a3c5cec7..acad22ebac12 100644 --- a/arch/arm64/kvm/reset.c +++ b/arch/arm64/kvm/reset.c @@ -94,8 +94,6 @@ static int kvm_vcpu_finalize_sve(struct kvm_vcpu *vcpu) { void *buf; unsigned int vl; - size_t reg_sz; - int ret; vl = vcpu->arch.sve_max_vl; @@ -108,17 +106,10 @@ static int kvm_vcpu_finalize_sve(struct kvm_vcpu *vcpu) vl > SVE_VL_ARCH_MAX)) return -EIO; - reg_sz = vcpu_sve_state_size(vcpu); - buf = kzalloc(reg_sz, GFP_KERNEL_ACCOUNT); + buf = kzalloc(SVE_SIG_REGS_SIZE(sve_vq_from_vl(vl)), GFP_KERNEL_ACCOUNT); if (!buf) return -ENOMEM; - ret = create_hyp_mappings(buf, buf + reg_sz, PAGE_HYP); - if (ret) { - kfree(buf); - return ret; - } - vcpu->arch.sve_state = buf; vcpu->arch.flags |= KVM_ARM64_VCPU_SVE_FINALIZED; return 0;