]> xenbits.xensource.com Git - people/pauldu/linux.git/commitdiff
KVM: arm64: Map SVE context at EL2 when available
authorMarc Zyngier <maz@kernel.org>
Thu, 11 Mar 2021 15:07:14 +0000 (15:07 +0000)
committerMarc Zyngier <maz@kernel.org>
Thu, 18 Mar 2021 13:57:49 +0000 (13:57 +0000)
When running on nVHE, and that the vcpu supports SVE, map the
SVE state at EL2 so that KVM can access it.

Acked-by: Will Deacon <will@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/fpsimd.c

index b7e36a506d3d35b838ff6956b8bcd67c1501fbc7..3c37a419fa82e339eaa7383d1b60393fb4d9b50d 100644 (file)
@@ -43,6 +43,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_thread_info = kern_hyp_va(ti);
        vcpu->arch.host_fpsimd_state = kern_hyp_va(fpsimd);
 error: