mirror of https://gitee.com/openkylin/linux.git
nfp: don't fail probe on pci_sriov_set_totalvfs() errors
On machines with buggy ACPI tables or when SR-IOV is already enabled we may not be able to set the SR-IOV VF limit in sysfs, it's not fatal because the limit is imposed by the driver anyway. Only the sysfs 'sriov_totalvfs' attribute will be too high. Print an error to inform user about the failure but allow probe to continue. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b24dbfe9ce
commit
5b0ced17ed
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue