diff options
Diffstat (limited to 'virt/kvm')
-rw-r--r-- | virt/kvm/assigned-dev.c | 2 | ||||
-rw-r--r-- | virt/kvm/iommu.c | 4 |
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, |