|
@@ -236,16 +236,20 @@ static int nfp_pcie_sriov_read_nfd_limit(struct nfp_pf *pf)
|
|
|
int err;
|
|
|
|
|
|
pf->limit_vfs = nfp_rtsym_read_le(pf->rtbl, "nfd_vf_cfg_max_vfs", &err);
|
|
|
- if (!err)
|
|
|
- return pci_sriov_set_totalvfs(pf->pdev, pf->limit_vfs);
|
|
|
+ if (err) {
|
|
|
+ /* For backwards compatibility if symbol not found allow all */
|
|
|
+ pf->limit_vfs = ~0;
|
|
|
+ if (err == -ENOENT)
|
|
|
+ return 0;
|
|
|
|
|
|
- pf->limit_vfs = ~0;
|
|
|
- /* Allow any setting for backwards compatibility if symbol not found */
|
|
|
- if (err == -ENOENT)
|
|
|
- return 0;
|
|
|
+ nfp_warn(pf->cpp, "Warning: VF limit read failed: %d\n", err);
|
|
|
+ return err;
|
|
|
+ }
|
|
|
|
|
|
- nfp_warn(pf->cpp, "Warning: VF limit read failed: %d\n", err);
|
|
|
- return err;
|
|
|
+ err = pci_sriov_set_totalvfs(pf->pdev, pf->limit_vfs);
|
|
|
+ if (err)
|
|
|
+ nfp_warn(pf->cpp, "Failed to set VF count in sysfs: %d\n", err);
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
static int nfp_pcie_sriov_enable(struct pci_dev *pdev, int num_vfs)
|