• Alex Williamson's avatar
    PCI: Return error if cannot probe VF · 76002d8b
    Alex Williamson authored
    Commit 0e7df224 ("PCI: Add sysfs sriov_drivers_autoprobe to control
    VF driver binding") allows the user to specify that drivers for VFs of
    a PF should not be probed, but it actually causes pci_device_probe() to
    return success back to the driver core in this case.  Therefore by all
    sysfs appearances the device is bound to a driver, the driver link from
    the device exists as does the device link back from the driver, yet the
    driver's probe function is never called on the device.  We also fail to
    do any sort of cleanup when we're prohibited from probing the device,
    the IRQ setup remains in place and we even hold a device reference.
    
    Instead, abort with errno before any setup or references are taken when
    pci_device_can_probe() prevents us from trying to probe the device.
    
    Link: https://lore.kernel.org/lkml/155672991496.20698.4279330795743262888.stgit@gimli.home
    Fixes: 0e7df224 ("PCI: Add sysfs sriov_drivers_autoprobe to control VF driver binding")
    Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    76002d8b
pci-driver.c 41.3 KB