On Thu, 19 Aug 2021 15:12:35 -0600 Alex Williamson <alex.williamson@xxxxxxxxxx> wrote: > On Wed, 18 Aug 2021 18:16:00 +0300 > Yishai Hadas <yishaih@xxxxxxxxxx> wrote: > > + > > +static int vfio_pci_sriov_configure(struct pci_dev *pdev, int nr_virtfn) > > +{ > > + might_sleep(); > > vfio_pci_core_sriov_configure() retained the might_sleep(), it > shouldn't be needed here. > > > + > > + if (!enable_sriov) > > + return -ENOENT; > > + > > + return vfio_pci_core_sriov_configure(pdev, nr_virtfn); > > +} > ... > > @@ -509,7 +449,7 @@ static struct vfio_pci_core_device *get_pf_vdev(struct vfio_pci_core_device *vde > > if (!pf_dev) > > return NULL; > > > > - if (pci_dev_driver(physfn) != &vfio_pci_driver) { > > + if (pci_dev_driver(physfn) != pci_dev_driver(vdev->pdev)) { > > I think this means that the PF and VF must use the same vfio-pci > "variant" driver, it's too bad we're not enabling vfio-pci to own the > PF while vfio-vendor-foo-pci owns the VF since our SR-IOV security > model remains in the core. We can work on that later though, no loss > of functionality here. > > ... > > @@ -1795,12 +1723,12 @@ static int vfio_pci_bus_notifier(struct notifier_block *nb, > > pci_info(vdev->pdev, "Captured SR-IOV VF %s driver_override\n", > > pci_name(pdev)); > > pdev->driver_override = kasprintf(GFP_KERNEL, "%s", > > - vfio_pci_ops.name); > > + vdev->vdev.ops->name); > > } else if (action == BUS_NOTIFY_BOUND_DRIVER && > > pdev->is_virtfn && physfn == vdev->pdev) { > > struct pci_driver *drv = pci_dev_driver(pdev); > > > > - if (drv && drv != &vfio_pci_driver) > > + if (drv && drv != pci_dev_driver(vdev->pdev)) > > pci_warn(vdev->pdev, > > "VF %s bound to driver %s while PF bound to vfio-pci\n", > > "vfio-pci" is hardcoded in this comment. There are a few other user > visible instances of this in vfio-pci-core.c as well: > > MODULE_PARM_DESC(disable_vga, "Disable VGA resource access through vfio-pci"); I see this one is resolved in a later patch. Thanks, Alex > > ret = pci_request_selected_regions(pdev, > 1 << index, "vfio-pci"); > > pci_info_ratelimited(vdev->pdev, > "VF token incorrectly provided, PF not bound to vfio-pci\n"); > > We should try to fix or reword as many of these as we reasonably can. > Thanks, > > Alex