Lines Matching full:intid
66 static struct vgic_irq *vgic_get_lpi(struct kvm *kvm, u32 intid) in vgic_get_lpi() argument
73 irq = xa_load(&dist->lpi_xa, intid); in vgic_get_lpi()
87 struct vgic_irq *vgic_get_irq(struct kvm *kvm, u32 intid) in vgic_get_irq() argument
90 if (intid >= VGIC_NR_PRIVATE_IRQS && in vgic_get_irq()
91 intid < (kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS)) { in vgic_get_irq()
92 intid = array_index_nospec(intid, kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS); in vgic_get_irq()
93 return &kvm->arch.vgic.spis[intid - VGIC_NR_PRIVATE_IRQS]; in vgic_get_irq()
97 if (intid >= VGIC_MIN_LPI) in vgic_get_irq()
98 return vgic_get_lpi(kvm, intid); in vgic_get_irq()
103 struct vgic_irq *vgic_get_vcpu_irq(struct kvm_vcpu *vcpu, u32 intid) in vgic_get_vcpu_irq() argument
109 if (intid < VGIC_NR_PRIVATE_IRQS) { in vgic_get_vcpu_irq()
110 intid = array_index_nospec(intid, VGIC_NR_PRIVATE_IRQS); in vgic_get_vcpu_irq()
111 return &vcpu->arch.vgic_cpu.private_irqs[intid]; in vgic_get_vcpu_irq()
114 return vgic_get_irq(vcpu->kvm, intid); in vgic_get_vcpu_irq()
120 __xa_erase(&dist->lpi_xa, irq->intid); in vgic_release_lpi_locked()
126 if (irq->intid < VGIC_MIN_LPI) in __vgic_put_irq()
145 if (irq->intid >= VGIC_MIN_LPI) in vgic_put_irq()
159 unsigned long intid; in vgic_release_deleted_lpis() local
164 xa_for_each(&dist->lpi_xa, intid, irq) { in vgic_release_deleted_lpis()
182 if (irq->intid >= VGIC_MIN_LPI) { in vgic_flush_pending_lpis()
211 return irq->ops->get_input_level(irq->intid); in vgic_get_phys_line_level()
451 * @intid: The INTID to inject a new state to.
465 unsigned int intid, bool level, void *owner) in kvm_vgic_inject_irq() argument
475 if (!vcpu && intid < VGIC_NR_PRIVATE_IRQS) in kvm_vgic_inject_irq()
478 trace_vgic_update_irq_pending(vcpu ? vcpu->vcpu_idx : 0, intid, level); in kvm_vgic_inject_irq()
480 if (intid < VGIC_NR_PRIVATE_IRQS) in kvm_vgic_inject_irq()
481 irq = vgic_get_vcpu_irq(vcpu, intid); in kvm_vgic_inject_irq()
483 irq = vgic_get_irq(kvm, intid); in kvm_vgic_inject_irq()
562 * @vintid: The INTID of the interrupt
623 * @intid: The virtual INTID identifying the interrupt (PPI or SPI)
626 * Returns 0 if intid is not already used by another in-kernel device and the
629 int kvm_vgic_set_owner(struct kvm_vcpu *vcpu, unsigned int intid, void *owner) in kvm_vgic_set_owner() argument
639 if (!irq_is_ppi(intid) && !vgic_valid_spi(vcpu->kvm, intid)) in kvm_vgic_set_owner()
642 irq = vgic_get_vcpu_irq(vcpu, intid); in kvm_vgic_set_owner()