aboutsummaryrefslogtreecommitdiffstats
path: root/virt/kvm
diff options
context:
space:
mode:
Diffstat (limited to 'virt/kvm')
-rw-r--r--virt/kvm/assigned-dev.c2
-rw-r--r--virt/kvm/iommu.c4
2 files changed, 6 insertions, 0 deletions
diff --git a/virt/kvm/assigned-dev.c b/virt/kvm/assigned-dev.c
index 4e9eaeb518c7..eaf3a50f9769 100644
--- a/virt/kvm/assigned-dev.c
+++ b/virt/kvm/assigned-dev.c
@@ -205,6 +205,8 @@ static void kvm_free_assigned_device(struct kvm *kvm,
205 else 205 else
206 pci_restore_state(assigned_dev->dev); 206 pci_restore_state(assigned_dev->dev);
207 207
208 assigned_dev->dev->dev_flags &= ~PCI_DEV_FLAGS_ASSIGNED;
209
208 pci_release_regions(assigned_dev->dev); 210 pci_release_regions(assigned_dev->dev);
209 pci_disable_device(assigned_dev->dev); 211 pci_disable_device(assigned_dev->dev);
210 pci_dev_put(assigned_dev->dev); 212 pci_dev_put(assigned_dev->dev);
diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c
index 78c80f67f535..967aba133a62 100644
--- a/virt/kvm/iommu.c
+++ b/virt/kvm/iommu.c
@@ -187,6 +187,8 @@ int kvm_assign_device(struct kvm *kvm,
187 goto out_unmap; 187 goto out_unmap;
188 } 188 }
189 189
190 pdev->dev_flags |= PCI_DEV_FLAGS_ASSIGNED;
191
190 printk(KERN_DEBUG "assign device %x:%x:%x.%x\n", 192 printk(KERN_DEBUG "assign device %x:%x:%x.%x\n",
191 assigned_dev->host_segnr, 193 assigned_dev->host_segnr,
192 assigned_dev->host_busnr, 194 assigned_dev->host_busnr,
@@ -215,6 +217,8 @@ int kvm_deassign_device(struct kvm *kvm,
215 217
216 iommu_detach_device(domain, &pdev->dev); 218 iommu_detach_device(domain, &pdev->dev);
217 219
220 pdev->dev_flags &= ~PCI_DEV_FLAGS_ASSIGNED;
221
218 printk(KERN_DEBUG "deassign device %x:%x:%x.%x\n", 222 printk(KERN_DEBUG "deassign device %x:%x:%x.%x\n",
219 assigned_dev->host_segnr, 223 assigned_dev->host_segnr,
220 assigned_dev->host_busnr, 224 assigned_dev->host_busnr,