Lines Matching defs:kvm
126 struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, vcpu, i);
154 vgic_put_irq(vcpu->kvm, irq);
163 struct vgic_irq *irq = vgic_get_irq(vcpu->kvm, vcpu, i);
183 vgic_put_irq(vcpu->kvm, irq);
187 /* Must be called with the kvm lock held */
188 void vgic_v4_configure_vsgis(struct kvm *kvm)
190 struct vgic_dist *dist = &kvm->arch.vgic;
194 kvm_arm_halt_guest(kvm);
196 kvm_for_each_vcpu(i, vcpu, kvm) {
203 kvm_arm_resume_guest(kvm);
208 * @kvm: Pointer to the VM being initialized
211 * vgic is initialized. This relies on kvm->lock to be
215 int vgic_v4_init(struct kvm *kvm)
217 struct vgic_dist *dist = &kvm->arch.vgic;
227 nr_vcpus = atomic_read(&kvm->online_vcpus);
236 kvm_for_each_vcpu(i, vcpu, kvm)
248 kvm_for_each_vcpu(i, vcpu, kvm) {
280 vgic_v4_teardown(kvm);
287 * @kvm: Pointer to the VM being destroyed
289 * Relies on kvm->lock to be held.
291 void vgic_v4_teardown(struct kvm *kvm)
293 struct its_vm *its_vm = &kvm->arch.vgic.its_vm;
300 struct kvm_vcpu *vcpu = kvm_get_vcpu(kvm, i);
317 if (!vgic_supports_direct_msis(vcpu->kvm) || !vpe->resident)
328 if (!vgic_supports_direct_msis(vcpu->kvm) || vpe->resident)
341 err = its_make_vpe_resident(vpe, false, vcpu->kvm->arch.vgic.enabled);
356 static struct vgic_its *vgic_get_its(struct kvm *kvm,
367 return vgic_msi_to_its(kvm, &msi);
370 int kvm_vgic_v4_set_forwarding(struct kvm *kvm, int virq,
378 if (!vgic_supports_direct_msis(kvm))
385 its = vgic_get_its(kvm, irq_entry);
392 ret = vgic_its_resolve_lpi(kvm, its, irq_entry->msi.devid,
404 .vm = &kvm->arch.vgic.its_vm,
426 int kvm_vgic_v4_unset_forwarding(struct kvm *kvm, int virq,
433 if (!vgic_supports_direct_msis(kvm))
440 its = vgic_get_its(kvm, irq_entry);
446 ret = vgic_its_resolve_lpi(kvm, its, irq_entry->msi.devid,