Lines Matching refs:kvm

45 int kvm_irq_map_gsi(struct kvm *kvm,  in kvm_irq_map_gsi()  argument
52 irq_rt = srcu_dereference_check(kvm->irq_routing, &kvm->irq_srcu, in kvm_irq_map_gsi()
53 lockdep_is_held(&kvm->irq_lock)); in kvm_irq_map_gsi()
64 int kvm_irq_map_chip_pin(struct kvm *kvm, unsigned irqchip, unsigned pin) in kvm_irq_map_chip_pin() argument
68 irq_rt = srcu_dereference(kvm->irq_routing, &kvm->irq_srcu); in kvm_irq_map_chip_pin()
72 int kvm_send_userspace_msi(struct kvm *kvm, struct kvm_msi *msi) in kvm_send_userspace_msi() argument
76 if (!irqchip_in_kernel(kvm) || msi->flags != 0) in kvm_send_userspace_msi()
83 return kvm_set_msi(&route, kvm, KVM_USERSPACE_IRQ_SOURCE_ID, 1, false); in kvm_send_userspace_msi()
92 int kvm_set_irq(struct kvm *kvm, int irq_source_id, u32 irq, int level, in kvm_set_irq() argument
104 idx = srcu_read_lock(&kvm->irq_srcu); in kvm_set_irq()
105 i = kvm_irq_map_gsi(kvm, irq_set, irq); in kvm_set_irq()
106 srcu_read_unlock(&kvm->irq_srcu, idx); in kvm_set_irq()
110 r = irq_set[i].set(&irq_set[i], kvm, irq_source_id, level, in kvm_set_irq()
121 void kvm_free_irq_routing(struct kvm *kvm) in kvm_free_irq_routing() argument
125 kfree(kvm->irq_routing); in kvm_free_irq_routing()
159 int kvm_set_irq_routing(struct kvm *kvm, in kvm_set_irq_routing() argument
200 mutex_lock(&kvm->irq_lock); in kvm_set_irq_routing()
201 old = kvm->irq_routing; in kvm_set_irq_routing()
202 rcu_assign_pointer(kvm->irq_routing, new); in kvm_set_irq_routing()
203 kvm_irq_routing_update(kvm); in kvm_set_irq_routing()
204 mutex_unlock(&kvm->irq_lock); in kvm_set_irq_routing()
206 synchronize_srcu_expedited(&kvm->irq_srcu); in kvm_set_irq_routing()