Lines Matching defs:kvm

3  * s390 kvm PCI passthrough support
17 #include "kvm-s390.h"
231 struct kvm *kvm;
242 kvm = zdev->kzdev->kvm;
246 gisc = kvm_s390_gisc_register(kvm, fib->fmt0.isc);
251 idx = srcu_read_lock(&kvm->srcu);
252 hva = gfn_to_hva(kvm, gpa_to_gfn((gpa_t)fib->fmt0.aibv));
254 srcu_read_unlock(&kvm->srcu, idx);
266 idx = srcu_read_lock(&kvm->srcu);
267 hva = gfn_to_hva(kvm, gpa_to_gfn((gpa_t)fib->fmt0.aisb));
270 srcu_read_unlock(&kvm->srcu, idx);
300 gaite->gisa = (u32)virt_to_phys(&kvm->arch.sie_page2->gisa);
384 kvm_s390_gisc_unregister(kzdev->kvm, isc);
434 static int kvm_s390_pci_register_kvm(void *opaque, struct kvm *kvm)
445 if (zdev->kzdev || zdev->gisa != 0 || !kvm) {
450 kvm_get_kvm(kvm);
452 mutex_lock(&kvm->lock);
469 if (!kvm->arch.use_zpci_interp)
470 kvm_s390_vcpu_pci_enable_interp(kvm);
479 * Store information about the identity of the kvm guest allowed to
482 zdev->gisa = (u32)virt_to_phys(&kvm->arch.sie_page2->gisa);
495 zdev->kzdev->kvm = kvm;
497 spin_lock(&kvm->arch.kzdev_list_lock);
498 list_add_tail(&zdev->kzdev->entry, &kvm->arch.kzdev_list);
499 spin_unlock(&kvm->arch.kzdev_list_lock);
501 mutex_unlock(&kvm->lock);
510 mutex_unlock(&kvm->lock);
512 kvm_put_kvm(kvm);
519 struct kvm *kvm;
532 kvm = zdev->kzdev->kvm;
533 mutex_lock(&kvm->lock);
562 spin_lock(&kvm->arch.kzdev_list_lock);
564 spin_unlock(&kvm->arch.kzdev_list_lock);
567 mutex_unlock(&kvm->lock);
570 kvm_put_kvm(kvm);
573 void kvm_s390_pci_init_list(struct kvm *kvm)
575 spin_lock_init(&kvm->arch.kzdev_list_lock);
576 INIT_LIST_HEAD(&kvm->arch.kzdev_list);
579 void kvm_s390_pci_clear_list(struct kvm *kvm)
583 * or kvm fd cleanup.
585 spin_lock(&kvm->arch.kzdev_list_lock);
586 WARN_ON_ONCE(!list_empty(&kvm->arch.kzdev_list));
587 spin_unlock(&kvm->arch.kzdev_list_lock);
590 static struct zpci_dev *get_zdev_from_kvm_by_fh(struct kvm *kvm, u32 fh)
595 spin_lock(&kvm->arch.kzdev_list_lock);
596 list_for_each_entry(kzdev, &kvm->arch.kzdev_list, entry) {
602 spin_unlock(&kvm->arch.kzdev_list_lock);
630 int kvm_s390_pci_zpci_op(struct kvm *kvm, struct kvm_s390_zpci_op *args)
636 zdev = get_zdev_from_kvm_by_fh(kvm, args->fh);
641 mutex_lock(&kvm->lock);
648 if (kzdev->kvm != kvm) {
670 mutex_unlock(&kvm->lock);