unsigned long r1 = host_ctxt->regs.regs[1];
                struct kvm_vcpu *vcpu = (struct kvm_vcpu *)r1;
 
-               ret = __kvm_vcpu_run(vcpu);
+               ret = __kvm_vcpu_run(kern_hyp_va(vcpu));
                break;
        }
        case KVM_HOST_SMCCC_FUNC(__kvm_flush_vm_context):
                phys_addr_t ipa = host_ctxt->regs.regs[2];
                int level = host_ctxt->regs.regs[3];
 
-               __kvm_tlb_flush_vmid_ipa(mmu, ipa, level);
+               __kvm_tlb_flush_vmid_ipa(kern_hyp_va(mmu), ipa, level);
                break;
        }
        case KVM_HOST_SMCCC_FUNC(__kvm_tlb_flush_vmid): {
                unsigned long r1 = host_ctxt->regs.regs[1];
                struct kvm_s2_mmu *mmu = (struct kvm_s2_mmu *)r1;
 
-               __kvm_tlb_flush_vmid(mmu);
+               __kvm_tlb_flush_vmid(kern_hyp_va(mmu));
                break;
        }
        case KVM_HOST_SMCCC_FUNC(__kvm_tlb_flush_local_vmid): {
                unsigned long r1 = host_ctxt->regs.regs[1];
                struct kvm_s2_mmu *mmu = (struct kvm_s2_mmu *)r1;
 
-               __kvm_tlb_flush_local_vmid(mmu);
+               __kvm_tlb_flush_local_vmid(kern_hyp_va(mmu));
                break;
        }
        case KVM_HOST_SMCCC_FUNC(__kvm_timer_set_cntvoff): {
                unsigned long r1 = host_ctxt->regs.regs[1];
                struct vgic_v3_cpu_if *cpu_if = (struct vgic_v3_cpu_if *)r1;
 
-               __vgic_v3_save_aprs(cpu_if);
+               __vgic_v3_save_aprs(kern_hyp_va(cpu_if));
                break;
        }
        case KVM_HOST_SMCCC_FUNC(__vgic_v3_restore_aprs): {
                unsigned long r1 = host_ctxt->regs.regs[1];
                struct vgic_v3_cpu_if *cpu_if = (struct vgic_v3_cpu_if *)r1;
 
-               __vgic_v3_restore_aprs(cpu_if);
+               __vgic_v3_restore_aprs(kern_hyp_va(cpu_if));
                break;
        }
        default:
 
        dsb(ishst);
 
        /* Switch to requested VMID */
-       mmu = kern_hyp_va(mmu);
        __tlb_switch_to_guest(mmu, &cxt);
 
        /*
        dsb(ishst);
 
        /* Switch to requested VMID */
-       mmu = kern_hyp_va(mmu);
        __tlb_switch_to_guest(mmu, &cxt);
 
        __tlbi(vmalls12e1is);
 
        if (likely(cpu_if->vgic_sre))
                kvm_call_hyp(__vgic_v3_write_vmcr, cpu_if->vgic_vmcr);
 
-       kvm_call_hyp(__vgic_v3_restore_aprs, kern_hyp_va(cpu_if));
+       kvm_call_hyp(__vgic_v3_restore_aprs, cpu_if);
 
        if (has_vhe())
                __vgic_v3_activate_traps(cpu_if);
 
        vgic_v3_vmcr_sync(vcpu);
 
-       kvm_call_hyp(__vgic_v3_save_aprs, kern_hyp_va(cpu_if));
+       kvm_call_hyp(__vgic_v3_save_aprs, cpu_if);
 
        if (has_vhe())
                __vgic_v3_deactivate_traps(cpu_if);