KVM: arm64: Fix new instances of 32bit ESRs
authorMarc Zyngier <maz@kernel.org>
Wed, 4 May 2022 07:01:05 +0000 (08:01 +0100)
committerMarc Zyngier <maz@kernel.org>
Wed, 4 May 2022 07:01:05 +0000 (08:01 +0100)
Fix the new instances of ESR being described as a u32, now that
we consistently are using a u64 for this register.

Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/sys_regs.c

index f3235ea..047f13e 100644 (file)
@@ -2306,7 +2306,7 @@ static int kvm_handle_cp_64(struct kvm_vcpu *vcpu,
                            size_t nr_global)
 {
        struct sys_reg_params params;
-       u32 esr = kvm_vcpu_get_esr(vcpu);
+       u64 esr = kvm_vcpu_get_esr(vcpu);
        int Rt = kvm_vcpu_sys_get_rt(vcpu);
        int Rt2 = (esr >> 10) & 0x1f;
 
@@ -2353,7 +2353,7 @@ static bool emulate_sys_reg(struct kvm_vcpu *vcpu, struct sys_reg_params *params
  * registers. Abuse that fact so we can rely on the AArch64 handler for accesses
  * from AArch32.
  */
-static bool kvm_esr_cp10_id_to_sys64(u32 esr, struct sys_reg_params *params)
+static bool kvm_esr_cp10_id_to_sys64(u64 esr, struct sys_reg_params *params)
 {
        u8 reg_id = (esr >> 10) & 0xf;
        bool valid;
@@ -2404,7 +2404,7 @@ static bool kvm_esr_cp10_id_to_sys64(u32 esr, struct sys_reg_params *params)
 int kvm_handle_cp10_id(struct kvm_vcpu *vcpu)
 {
        int Rt = kvm_vcpu_sys_get_rt(vcpu);
-       u32 esr = kvm_vcpu_get_esr(vcpu);
+       u64 esr = kvm_vcpu_get_esr(vcpu);
        struct sys_reg_params params;
 
        /* UNDEF on any unhandled register access */