Lines Matching defs:kvm
8 #include <linux/kvm.h>
26 * kvm->lock (mutex)
28 * kvm->arch.config_lock (mutex)
32 * kvm->lpi_list_lock must be taken with IRQs disabled
60 static struct vgic_irq *vgic_get_lpi(struct kvm *kvm, u32 intid)
62 struct vgic_dist *dist = &kvm->arch.vgic;
92 struct vgic_irq *vgic_get_irq(struct kvm *kvm, struct kvm_vcpu *vcpu,
102 if (intid < (kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS)) {
103 intid = array_index_nospec(intid, kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS);
104 return &kvm->arch.vgic.spis[intid - VGIC_NR_PRIVATE_IRQS];
109 return vgic_get_lpi(kvm, intid);
115 * We can't do anything in here, because we lack the kvm pointer to
126 void __vgic_put_lpi_locked(struct kvm *kvm, struct vgic_irq *irq)
128 struct vgic_dist *dist = &kvm->arch.vgic;
139 void vgic_put_irq(struct kvm *kvm, struct vgic_irq *irq)
141 struct vgic_dist *dist = &kvm->arch.vgic;
148 __vgic_put_lpi_locked(kvm, irq);
166 vgic_put_irq(vcpu->kvm, irq);
232 !irq->target_vcpu->kvm->arch.vgic.enabled))
336 bool vgic_queue_irq_unlock(struct kvm *kvm, struct vgic_irq *irq,
424 * @kvm: The VM structure pointer
439 int kvm_vgic_inject_irq(struct kvm *kvm, int cpuid, unsigned int intid,
449 ret = vgic_lazy_init(kvm);
453 vcpu = kvm_get_vcpu(kvm, cpuid);
457 irq = vgic_get_irq(kvm, vcpu, intid);
466 vgic_put_irq(kvm, irq);
475 vgic_queue_irq_unlock(kvm, irq, flags);
476 vgic_put_irq(kvm, irq);
519 struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, vcpu, vintid);
528 vgic_put_irq(vcpu->kvm, irq);
544 struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, vcpu, vintid);
556 vgic_put_irq(vcpu->kvm, irq);
564 if (!vgic_initialized(vcpu->kvm))
567 irq = vgic_get_irq(vcpu->kvm, vcpu, vintid);
573 vgic_put_irq(vcpu->kvm, irq);
580 struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, vcpu, vintid);
589 vgic_put_irq(vcpu->kvm, irq);
609 if (!vgic_initialized(vcpu->kvm))
613 if (!irq_is_ppi(intid) && !vgic_valid_spi(vcpu->kvm, intid))
616 irq = vgic_get_irq(vcpu->kvm, vcpu, intid);
671 vgic_put_irq(vcpu->kvm, irq);
922 !vgic_supports_direct_msis(vcpu->kvm))
936 if (vgic_supports_direct_msis(vcpu->kvm))
942 if (unlikely(!vgic_initialized(vcpu->kvm)))
953 if (unlikely(!vgic_initialized(vcpu->kvm)))
964 if (unlikely(!irqchip_in_kernel(vcpu->kvm)))
981 if (!vcpu->kvm->arch.vgic.enabled)
1007 void vgic_kick_vcpus(struct kvm *kvm)
1016 kvm_for_each_vcpu(c, vcpu, kvm) {
1030 if (!vgic_initialized(vcpu->kvm))
1033 irq = vgic_get_irq(vcpu->kvm, vcpu, vintid);
1037 vgic_put_irq(vcpu->kvm, irq);