Loading include/linux/kvm_host.h +1 −0 Original line number Diff line number Diff line Loading @@ -316,6 +316,7 @@ struct kvm_assigned_dev_kernel { #define KVM_ASSIGNED_DEV_HOST_MSI (1 << 9) unsigned long irq_requested_type; int irq_source_id; int flags; struct pci_dev *dev; struct kvm *kvm; }; Loading virt/kvm/kvm_main.c +1 −0 Original line number Diff line number Diff line Loading @@ -496,6 +496,7 @@ static int kvm_vm_ioctl_assign_device(struct kvm *kvm, match->assigned_dev_id = assigned_dev->assigned_dev_id; match->host_busnr = assigned_dev->busnr; match->host_devfn = assigned_dev->devfn; match->flags = assigned_dev->flags; match->dev = dev; match->irq_source_id = -1; match->kvm = kvm; Loading virt/kvm/vtd.c +0 −10 Original line number Diff line number Diff line Loading @@ -205,22 +205,12 @@ static int kvm_iommu_unmap_memslots(struct kvm *kvm) int kvm_iommu_unmap_guest(struct kvm *kvm) { struct kvm_assigned_dev_kernel *entry; struct dmar_domain *domain = kvm->arch.intel_iommu_domain; /* check if iommu exists and in use */ if (!domain) return 0; list_for_each_entry(entry, &kvm->arch.assigned_dev_head, list) { printk(KERN_DEBUG "VT-d unmap: host bdf = %x:%x:%x\n", entry->host_busnr, PCI_SLOT(entry->host_devfn), PCI_FUNC(entry->host_devfn)); /* detach kvm dmar domain */ intel_iommu_detach_device(domain, entry->dev); } kvm_iommu_unmap_memslots(kvm); intel_iommu_free_domain(domain); return 0; Loading Loading
include/linux/kvm_host.h +1 −0 Original line number Diff line number Diff line Loading @@ -316,6 +316,7 @@ struct kvm_assigned_dev_kernel { #define KVM_ASSIGNED_DEV_HOST_MSI (1 << 9) unsigned long irq_requested_type; int irq_source_id; int flags; struct pci_dev *dev; struct kvm *kvm; }; Loading
virt/kvm/kvm_main.c +1 −0 Original line number Diff line number Diff line Loading @@ -496,6 +496,7 @@ static int kvm_vm_ioctl_assign_device(struct kvm *kvm, match->assigned_dev_id = assigned_dev->assigned_dev_id; match->host_busnr = assigned_dev->busnr; match->host_devfn = assigned_dev->devfn; match->flags = assigned_dev->flags; match->dev = dev; match->irq_source_id = -1; match->kvm = kvm; Loading
virt/kvm/vtd.c +0 −10 Original line number Diff line number Diff line Loading @@ -205,22 +205,12 @@ static int kvm_iommu_unmap_memslots(struct kvm *kvm) int kvm_iommu_unmap_guest(struct kvm *kvm) { struct kvm_assigned_dev_kernel *entry; struct dmar_domain *domain = kvm->arch.intel_iommu_domain; /* check if iommu exists and in use */ if (!domain) return 0; list_for_each_entry(entry, &kvm->arch.assigned_dev_head, list) { printk(KERN_DEBUG "VT-d unmap: host bdf = %x:%x:%x\n", entry->host_busnr, PCI_SLOT(entry->host_devfn), PCI_FUNC(entry->host_devfn)); /* detach kvm dmar domain */ intel_iommu_detach_device(domain, entry->dev); } kvm_iommu_unmap_memslots(kvm); intel_iommu_free_domain(domain); return 0; Loading