mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
pci: Add flag indicating device has been assigned by KVM
Device drivers that create and destroy SR-IOV virtual functions via calls to pci_enable_sriov() and pci_disable_sriov can cause catastrophic failures if they attempt to destroy VFs while they are assigned to guest virtual machines. By adding a flag for use by the KVM module to indicate that a device is assigned a device driver can check that flag and avoid destroying VFs while they are assigned and avoid system failures. CC: Ian Campbell <[email protected]> CC: Konrad Wilk <[email protected]> Signed-off-by: Greg Rose <[email protected]> Acked-by: Jesse Barnes <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
This commit is contained in:
parent
9c9b1f24f2
commit
6777829cfe
3 changed files with 8 additions and 0 deletions
|
|
@ -205,6 +205,8 @@ static void kvm_free_assigned_device(struct kvm *kvm,
|
|||
else
|
||||
pci_restore_state(assigned_dev->dev);
|
||||
|
||||
assigned_dev->dev->dev_flags &= ~PCI_DEV_FLAGS_ASSIGNED;
|
||||
|
||||
pci_release_regions(assigned_dev->dev);
|
||||
pci_disable_device(assigned_dev->dev);
|
||||
pci_dev_put(assigned_dev->dev);
|
||||
|
|
|
|||
|
|
@ -187,6 +187,8 @@ int kvm_assign_device(struct kvm *kvm,
|
|||
goto out_unmap;
|
||||
}
|
||||
|
||||
pdev->dev_flags |= PCI_DEV_FLAGS_ASSIGNED;
|
||||
|
||||
printk(KERN_DEBUG "assign device %x:%x:%x.%x\n",
|
||||
assigned_dev->host_segnr,
|
||||
assigned_dev->host_busnr,
|
||||
|
|
@ -215,6 +217,8 @@ int kvm_deassign_device(struct kvm *kvm,
|
|||
|
||||
iommu_detach_device(domain, &pdev->dev);
|
||||
|
||||
pdev->dev_flags &= ~PCI_DEV_FLAGS_ASSIGNED;
|
||||
|
||||
printk(KERN_DEBUG "deassign device %x:%x:%x.%x\n",
|
||||
assigned_dev->host_segnr,
|
||||
assigned_dev->host_busnr,
|
||||
|
|
|
|||
Loading…
Reference in a new issue