KVM: arm64: Use {read,write}_sysreg_el1 to access ZCR_EL1
authorMarc Zyngier <maz@kernel.org>
Thu, 11 Mar 2021 13:51:44 +0000 (13:51 +0000)
committerMarc Zyngier <maz@kernel.org>
Thu, 18 Mar 2021 11:23:48 +0000 (11:23 +0000)
Switch to the unified EL1 accessors for ZCR_EL1, which will make
things easier for nVHE support.

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

index 3e081d556e81092c931c4981ffe6d22bc03e5386..b7e36a506d3d35b838ff6956b8bcd67c1501fbc7 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/kvm_host.h>
 #include <asm/fpsimd.h>
 #include <asm/kvm_asm.h>
+#include <asm/kvm_hyp.h>
 #include <asm/kvm_mmu.h>
 #include <asm/sysreg.h>
 
@@ -112,7 +113,7 @@ void kvm_arch_vcpu_put_fp(struct kvm_vcpu *vcpu)
                fpsimd_save_and_flush_cpu_state();
 
                if (guest_has_sve)
-                       __vcpu_sys_reg(vcpu, ZCR_EL1) = read_sysreg_s(SYS_ZCR_EL12);
+                       __vcpu_sys_reg(vcpu, ZCR_EL1) = read_sysreg_el1(SYS_ZCR);
        } else if (host_has_sve) {
                /*
                 * The FPSIMD/SVE state in the CPU has not been touched, and we
index 807bc4734828a3269e691ddeb3919dbfb8dbe53c..d762d5bdc2d56d9700620530178cf619fdac9070 100644 (file)
@@ -269,7 +269,7 @@ static inline bool __hyp_handle_fpsimd(struct kvm_vcpu *vcpu)
                __sve_restore_state(vcpu_sve_pffr(vcpu),
                                    &vcpu->arch.ctxt.fp_regs.fpsr,
                                    sve_vq_from_vl(vcpu->arch.sve_max_vl) - 1);
-               write_sysreg_s(__vcpu_sys_reg(vcpu, ZCR_EL1), SYS_ZCR_EL12);
+               write_sysreg_el1(__vcpu_sys_reg(vcpu, ZCR_EL1), SYS_ZCR);
        } else {
                __fpsimd_restore_state(&vcpu->arch.ctxt.fp_regs);
        }