Lines Matching refs:kvm

72 	if (vcpu->kvm->arch.vgic.enabled)  in handle_mmio_ctlr()
81 vcpu->kvm->arch.vgic.enabled = !!(reg & GICD_CTLR_ENABLE_SS_G1); in handle_mmio_ctlr()
82 vgic_update_state(vcpu->kvm); in handle_mmio_ctlr()
100 reg = (min(vcpu->kvm->arch.vgic.nr_irqs, 1024) >> 5) - 1; in handle_mmio_typer()
127 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_enable_reg_dist()
141 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_enable_reg_dist()
155 return vgic_handle_set_pending_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_pending_reg_dist()
168 return vgic_handle_clear_pending_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_pending_reg_dist()
188 reg = vgic_bytemap_get_reg(&vcpu->kvm->arch.vgic.irq_priority, in handle_mmio_priority_reg_dist()
207 reg = vgic_bitmap_get_reg(&vcpu->kvm->arch.vgic.irq_cfg, in handle_mmio_cfg_reg_dist()
254 struct kvm *kvm = vcpu->kvm; in handle_mmio_route_reg() local
255 struct vgic_dist *dist = &kvm->arch.vgic; in handle_mmio_route_reg()
288 vcpu = kvm_mpidr_to_vcpu(kvm, mpidr); in handle_mmio_route_reg()
296 vcpu = kvm_mpidr_to_vcpu(kvm, reg & MPIDR_HWID_BITMASK); in handle_mmio_route_reg()
314 vgic_update_state(kvm); in handle_mmio_route_reg()
535 if (target_vcpu_id == atomic_read(&vcpu->kvm->online_vcpus) - 1) in handle_mmio_typer_redist()
548 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_enable_reg_redist()
559 return vgic_handle_enable_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_enable_reg_redist()
570 return vgic_handle_set_pending_reg(vcpu->kvm, mmio, offset, in handle_mmio_set_pending_reg_redist()
580 return vgic_handle_clear_pending_reg(vcpu->kvm, mmio, offset, in handle_mmio_clear_pending_reg_redist()
591 reg = vgic_bytemap_get_reg(&vcpu->kvm->arch.vgic.irq_priority, in handle_mmio_priority_reg_redist()
604 u32 *reg = vgic_bitmap_get_reg(&vcpu->kvm->arch.vgic.irq_cfg, in handle_mmio_cfg_reg_redist()
722 static int vgic_v3_map_resources(struct kvm *kvm, in vgic_v3_map_resources() argument
726 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_v3_map_resources()
731 if (!irqchip_in_kernel(kvm)) in vgic_v3_map_resources()
734 mutex_lock(&kvm->lock); in vgic_v3_map_resources()
736 if (vgic_ready(kvm)) in vgic_v3_map_resources()
750 if (!vgic_initialized(kvm)) { in vgic_v3_map_resources()
755 ret = vgic_register_kvm_io_dev(kvm, dist->vgic_dist_base, in vgic_v3_map_resources()
768 ret = vgic_register_kvm_io_dev(kvm, rdbase, in vgic_v3_map_resources()
781 kvm_io_bus_unregister_dev(kvm, KVM_MMIO_BUS, &dist->dist_iodev.dev); in vgic_v3_map_resources()
785 kvm_io_bus_unregister_dev(kvm, KVM_MMIO_BUS, in vgic_v3_map_resources()
792 kvm_vgic_destroy(kvm); in vgic_v3_map_resources()
793 mutex_unlock(&kvm->lock); in vgic_v3_map_resources()
797 static int vgic_v3_init_model(struct kvm *kvm) in vgic_v3_init_model() argument
801 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_v3_init_model()
811 mpidr = compress_mpidr(kvm_vcpu_get_mpidr_aff(kvm_get_vcpu(kvm, 0))); in vgic_v3_init_model()
826 void vgic_v3_init_emulation(struct kvm *kvm) in vgic_v3_init_emulation() argument
828 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_v3_init_emulation()
835 kvm->arch.max_vcpus = KVM_MAX_VCPUS; in vgic_v3_init_emulation()
887 struct kvm *kvm = vcpu->kvm; in vgic_v3_dispatch_sgi() local
889 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_v3_dispatch_sgi()
916 kvm_for_each_vcpu(c, c_vcpu, kvm) { in vgic_v3_dispatch_sgi()
943 vgic_update_state(vcpu->kvm); in vgic_v3_dispatch_sgi()
946 vgic_kick_vcpus(vcpu->kvm); in vgic_v3_dispatch_sgi()
951 return kvm_vgic_create(dev->kvm, type); in vgic_v3_create()