• Jakub Kicinski's avatar
    PCI/IOV: Allow PF drivers to limit total_VFs to 0 · 8d85a7a4
    Jakub Kicinski authored
    Some SR-IOV PF drivers implement .sriov_configure(), which allows
    user-space to enable VFs by writing the desired number of VFs to the sysfs
    "sriov_numvfs" file (see sriov_numvfs_store()).
    
    The PCI core limits the number of VFs to the TotalVFs advertised by the
    device in its SR-IOV capability.  The PF driver can limit the number of VFs
    to even fewer (it may have pre-allocated data structures or knowledge of
    device limitations) by calling pci_sriov_set_totalvfs(), but previously it
    could not limit the VFs to 0.
    
    Change pci_sriov_get_totalvfs() so it always respects the VF limit imposed
    by the PF driver, even if the limit is 0.
    
    This sequence:
    
      pci_sriov_set_totalvfs(dev, 0);
      x = pci_sriov_get_totalvfs(dev);
    
    previously set "x" to TotalVFs from the SR-IOV capability.  Now it will set
    "x" to 0.
    Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
    [bhelgaas: split to separate patch]
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    8d85a7a4
iov.c 20.2 KB