• Jakub Kicinski's avatar
    nfp: stop limiting VFs to 0 · 83235822
    Jakub Kicinski authored
    Before 8d85a7a4 ("PCI/IOV: Allow PF drivers to limit total_VFs to 0"),
    pci_sriov_set_totalvfs(pdev, 0) meant "we can enable TotalVFs virtual
    functions".  After 8d85a7a4, it means "we can't enable *any* VFs".
    
    That broke this scenario where nfp intends to remove any limit on the
    number of VFs that can be enabled:
    
      nfp_pci_probe
        nfp_pcie_sriov_read_nfd_limit
          nfp_rtsym_read_le("nfd_vf_cfg_max_vfs", &err)
          pci_sriov_set_totalvfs(pf->pdev, 0)   # if FW didn't expose a limit
    
      ...
      # userspace writes N to sysfs "sriov_numvfs":
      sriov_numvfs_store
        pci_sriov_get_totalvfs                  # now returns 0
        return -ERANGE
    
    Prior to 8d85a7a4, pci_sriov_get_totalvfs() returned TotalVFs, but it
    now returns 0.
    
    Remove the pci_sriov_set_totalvfs(pdev, 0) calls so we don't limit the
    number of VFs that can be enabled.
    
    Fixes: 8d85a7a4 ("PCI/IOV: Allow PF drivers to limit total_VFs to 0")
    Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
    [bhelgaas: changelog]
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    83235822
nfp_main.c 18.6 KB