diff options
Diffstat (limited to 'virt')
-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 7debe8c9e10e..3ad0925d23a9 100644 --- a/virt/kvm/assigned-dev.c +++ b/virt/kvm/assigned-dev.c | |||
@@ -208,6 +208,8 @@ static void kvm_free_assigned_device(struct kvm *kvm, | |||
208 | else | 208 | else |
209 | pci_restore_state(assigned_dev->dev); | 209 | pci_restore_state(assigned_dev->dev); |
210 | 210 | ||
211 | assigned_dev->dev->dev_flags &= ~PCI_DEV_FLAGS_ASSIGNED; | ||
212 | |||
211 | pci_release_regions(assigned_dev->dev); | 213 | pci_release_regions(assigned_dev->dev); |
212 | pci_disable_device(assigned_dev->dev); | 214 | pci_disable_device(assigned_dev->dev); |
213 | pci_dev_put(assigned_dev->dev); | 215 | 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, |