Commit 0dc78621 authored by Jakub Kicinski's avatar Jakub Kicinski Committed by David S. Miller

nfp: handle SR-IOV already enabled when driver is probing

We assumed that when we probe number of enabled VFs will be at 0.
This doesn't have to be the case for example if previous driver left
SR-IOV enabled due to some VFs being assigned.  Read the number of VFs
enabled.  Fail probe if it's above current FWs limit.
Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: default avatarSimon Horman <simon.horman@netronome.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 168c478e
...@@ -414,6 +414,14 @@ static int nfp_pci_probe(struct pci_dev *pdev, ...@@ -414,6 +414,14 @@ static int nfp_pci_probe(struct pci_dev *pdev,
if (err) if (err)
goto err_fw_unload; goto err_fw_unload;
pf->num_vfs = pci_num_vf(pdev);
if (pf->num_vfs > pf->limit_vfs) {
dev_err(&pdev->dev,
"Error: %d VFs already enabled, but loaded FW can only support %d\n",
pf->num_vfs, pf->limit_vfs);
goto err_fw_unload;
}
err = nfp_net_pci_probe(pf); err = nfp_net_pci_probe(pf);
if (err) if (err)
goto err_sriov_unlimit; goto err_sriov_unlimit;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment