Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
[sfrench/cifs-2.6.git] / drivers / virtio / virtio_pci_common.c
index 1d21d1a1b3f55a9a2410396ec8e9d3b2cfcbdb13..b655fccaf77330b08b23a57d7e2fe1d012409615 100644 (file)
@@ -236,6 +236,9 @@ void vp_del_vqs(struct virtio_device *vdev)
        int i;
 
        list_for_each_entry_safe(vq, n, &vdev->vqs, list) {
+               if (vp_dev->is_avq(vdev, vq->index))
+                       continue;
+
                if (vp_dev->per_vq_vectors) {
                        int v = vp_dev->vqs[vq->index]->msix_vector;
 
@@ -674,6 +677,17 @@ static struct pci_driver virtio_pci_driver = {
        .sriov_configure = virtio_pci_sriov_configure,
 };
 
+struct virtio_device *virtio_pci_vf_get_pf_dev(struct pci_dev *pdev)
+{
+       struct virtio_pci_device *pf_vp_dev;
+
+       pf_vp_dev = pci_iov_get_pf_drvdata(pdev, &virtio_pci_driver);
+       if (IS_ERR(pf_vp_dev))
+               return NULL;
+
+       return &pf_vp_dev->vdev;
+}
+
 module_pci_driver(virtio_pci_driver);
 
 MODULE_AUTHOR("Anthony Liguori <aliguori@us.ibm.com>");