Lines Matching defs:kvm
8 #include <linux/kvm.h>
26 * kvm->lock (mutex)
30 * kvm->lpi_list_lock must be taken with IRQs disabled
58 static struct vgic_irq *vgic_get_lpi(struct kvm *kvm, u32 intid)
60 struct vgic_dist *dist = &kvm->arch.vgic;
90 struct vgic_irq *vgic_get_irq(struct kvm *kvm, struct kvm_vcpu *vcpu,
100 if (intid < (kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS)) {
101 intid = array_index_nospec(intid, kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS);
102 return &kvm->arch.vgic.spis[intid - VGIC_NR_PRIVATE_IRQS];
107 return vgic_get_lpi(kvm, intid);
114 * We can't do anything in here, because we lack the kvm pointer to
125 void __vgic_put_lpi_locked(struct kvm *kvm, struct vgic_irq *irq)
127 struct vgic_dist *dist = &kvm->arch.vgic;
138 void vgic_put_irq(struct kvm *kvm, struct vgic_irq *irq)
140 struct vgic_dist *dist = &kvm->arch.vgic;
147 __vgic_put_lpi_locked(kvm, irq);
165 vgic_put_irq(vcpu->kvm, irq);
231 !irq->target_vcpu->kvm->arch.vgic.enabled))
335 bool vgic_queue_irq_unlock(struct kvm *kvm, struct vgic_irq *irq,
423 * @kvm: The VM structure pointer
438 int kvm_vgic_inject_irq(struct kvm *kvm, int cpuid, unsigned int intid,
448 ret = vgic_lazy_init(kvm);
452 vcpu = kvm_get_vcpu(kvm, cpuid);
456 irq = vgic_get_irq(kvm, vcpu, intid);
465 vgic_put_irq(kvm, irq);
474 vgic_queue_irq_unlock(kvm, irq, flags);
475 vgic_put_irq(kvm, irq);
518 struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, vcpu, vintid);
527 vgic_put_irq(vcpu->kvm, irq);
543 struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, vcpu, vintid);
555 vgic_put_irq(vcpu->kvm, irq);
563 if (!vgic_initialized(vcpu->kvm))
566 irq = vgic_get_irq(vcpu->kvm, vcpu, vintid);
572 vgic_put_irq(vcpu->kvm, irq);
593 if (!vgic_initialized(vcpu->kvm))
597 if (!irq_is_ppi(intid) && !vgic_valid_spi(vcpu->kvm, intid))
600 irq = vgic_get_irq(vcpu->kvm, vcpu, intid);
655 vgic_put_irq(vcpu->kvm, irq);
906 !vgic_supports_direct_msis(vcpu->kvm))
923 if (unlikely(!vgic_initialized(vcpu->kvm)))
934 if (unlikely(!vgic_initialized(vcpu->kvm)))
945 if (unlikely(!irqchip_in_kernel(vcpu->kvm)))
962 if (!vcpu->kvm->arch.vgic.enabled)
988 void vgic_kick_vcpus(struct kvm *kvm)
997 kvm_for_each_vcpu(c, vcpu, kvm) {
1011 if (!vgic_initialized(vcpu->kvm))
1014 irq = vgic_get_irq(vcpu->kvm, vcpu, vintid);
1018 vgic_put_irq(vcpu->kvm, irq);