Lines Matching defs:kvm

8 #include <linux/kvm.h>
11 #include <kvm/iodev.h>
12 #include <kvm/arm_vgic.h>
41 bool vgic_has_its(struct kvm *kvm)
43 struct vgic_dist *dist = &kvm->arch.vgic;
51 bool vgic_supports_direct_msis(struct kvm *kvm)
54 (kvm_vgic_global_state.has_gicv4 && vgic_has_its(kvm)));
67 struct vgic_dist *vgic = &vcpu->kvm->arch.vgic;
81 if (vgic_has_its(vcpu->kvm)) {
108 struct vgic_dist *dist = &vcpu->kvm->arch.vgic;
114 mutex_lock(&vcpu->kvm->lock);
134 vgic_v4_configure_vsgis(vcpu->kvm);
138 kvm_make_all_cpus_request(vcpu->kvm, KVM_REQ_RELOAD_GICv4);
140 vgic_kick_vcpus(vcpu->kvm);
142 mutex_unlock(&vcpu->kvm->lock);
157 struct vgic_dist *dist = &vcpu->kvm->arch.vgic;
183 struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, NULL, intid);
193 vgic_put_irq(vcpu->kvm, irq);
209 irq = vgic_get_irq(vcpu->kvm, NULL, intid);
218 irq->target_vcpu = kvm_mpidr_to_vcpu(vcpu->kvm, irq->mpidr);
221 vgic_put_irq(vcpu->kvm, irq);
240 if (!vgic_has_its(vcpu->kvm))
247 vgic_its_invalidate_cache(vcpu->kvm);
270 if (vgic_has_its(vcpu->kvm))
286 if (vgic_has_its(vcpu->kvm))
322 * Refer to Documentation/virt/kvm/devices/arm-vgic-v3.rst
326 struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, vcpu, intid + i);
341 vgic_put_irq(vcpu->kvm, irq);
356 struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, vcpu, intid + i);
375 vgic_queue_irq_unlock(vcpu->kvm, irq, flags);
379 vgic_put_irq(vcpu->kvm, irq);
471 struct vgic_dist *dist = &vcpu->kvm->arch.vgic;
480 struct vgic_dist *dist = &vcpu->kvm->arch.vgic;
699 struct kvm *kvm = vcpu->kvm;
700 struct vgic_dist *vgic = &kvm->arch.vgic;
720 if (!vgic_v3_check_base(kvm))
734 mutex_lock(&kvm->slots_lock);
735 ret = kvm_io_bus_register_dev(kvm, KVM_MMIO_BUS, rd_base,
737 mutex_unlock(&kvm->slots_lock);
750 kvm_io_bus_unregister_dev(vcpu->kvm, KVM_MMIO_BUS, &rd_dev->dev);
753 static int vgic_register_all_redist_iodevs(struct kvm *kvm)
758 kvm_for_each_vcpu(c, vcpu, kvm) {
766 mutex_lock(&kvm->slots_lock);
768 vcpu = kvm_get_vcpu(kvm, c);
771 mutex_unlock(&kvm->slots_lock);
784 * @kvm: kvm handle
792 static int vgic_v3_insert_redist_region(struct kvm *kvm, uint32_t index,
795 struct vgic_dist *d = &kvm->arch.vgic;
829 vgic_dist_overlap(kvm, base, size))
833 if (vgic_v3_rdist_overlap(kvm, base, size))
842 ret = vgic_check_ioaddr(kvm, &rdreg->base, base, SZ_64K);
858 int vgic_v3_set_redist_base(struct kvm *kvm, u32 index, u64 addr, u32 count)
862 ret = vgic_v3_insert_redist_region(kvm, index, addr, count);
870 ret = vgic_register_all_redist_iodevs(kvm);
980 struct kvm *kvm = vcpu->kvm;
1002 kvm_for_each_vcpu(c, c_vcpu, kvm) {
1024 irq = vgic_get_irq(vcpu->kvm, c_vcpu, sgi);
1036 vgic_queue_irq_unlock(vcpu->kvm, irq, flags);
1050 vgic_put_irq(vcpu->kvm, irq);