On Tue, Mar 16, 2021 at 10:13:04AM +0000, Marc Zyngier wrote: > Switch to the unified EL1 accessors for ZCR_EL1, which will make > things easier for nVHE support. > > Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx> > --- > arch/arm64/kvm/fpsimd.c | 3 ++- > arch/arm64/kvm/hyp/include/hyp/switch.h | 2 +- > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/kvm/fpsimd.c b/arch/arm64/kvm/fpsimd.c > index 3e081d556e81..b7e36a506d3d 100644 > --- a/arch/arm64/kvm/fpsimd.c > +++ b/arch/arm64/kvm/fpsimd.c > @@ -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 > diff --git a/arch/arm64/kvm/hyp/include/hyp/switch.h b/arch/arm64/kvm/hyp/include/hyp/switch.h > index 807bc4734828..d762d5bdc2d5 100644 > --- a/arch/arm64/kvm/hyp/include/hyp/switch.h > +++ b/arch/arm64/kvm/hyp/include/hyp/switch.h > @@ -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); Looks straightforward enough: Acked-by: Will Deacon <will@xxxxxxxxxx> Will