[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] xl/SR-IOV: disposition of VFs when PF disappears?
>>> On 28.10.14 at 17:56, <konrad.wilk@xxxxxxxxxx> wrote: > On Tue, Oct 28, 2014 at 04:25:16PM +0000, Jan Beulich wrote: >> --- sle12.orig/drivers/xen/xen-pciback/pci_stub.c >> +++ sle12/drivers/xen/xen-pciback/pci_stub.c >> @@ -1502,6 +1502,44 @@ parse_error: >> fs_initcall(pcistub_init); >> #endif >> >> +#ifdef CONFIG_PCI_IOV >> +static int pci_stub_notifier(struct notifier_block *nb, >> + unsigned long action, void *data) >> +{ >> + struct device *dev = data; >> + struct pci_dev *pdev = to_pci_dev(dev); >> + >> + switch (action) { >> + case BUS_NOTIFY_UNBIND_DRIVER: >> + for (;;) { >> + struct pcistub_device *psdev; >> + unsigned long flags; >> + bool found = false; >> + >> + spin_lock_irqsave(&pcistub_devices_lock, flags); >> + >> + list_for_each_entry(psdev, &pcistub_devices, dev_list) >> + if (!psdev->pdev && psdev->dev != pdev >> + && pci_physfn(psdev->dev) == pdev) { >> + found = true; >> + break; >> + } >> + spin_unlock_irqrestore(&pcistub_devices_lock, flags); > > There are existing functions in the PCI back driver to find an device based > on the 'struct pci_dev'. > > That should make this piece of code much simpler by just looking for it > and if found call the 'device_release_driver'. But we're not after the psdev matching the incoming pdev. > However I am not entirely sure what ought to be done if the VF is > in _use_ ? Should we still do it? Of course not (as being insecure) - that's what the !psdev->pdev check is there for. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |