From: Peng Zhang <peng.zh...@corigine.com> When using the multiple PF firmware, there is no need to create the PF representor port anymore.
Signed-off-by: Peng Zhang <peng.zh...@corigine.com> Reviewed-by: Chaoyong He <chaoyong...@corigine.com> Reviewed-by: Long Wu <long...@corigine.com> --- drivers/net/nfp/flower/nfp_flower_representor.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/net/nfp/flower/nfp_flower_representor.c b/drivers/net/nfp/flower/nfp_flower_representor.c index d49f02fc75..f769123174 100644 --- a/drivers/net/nfp/flower/nfp_flower_representor.c +++ b/drivers/net/nfp/flower/nfp_flower_representor.c @@ -1009,6 +1009,7 @@ nfp_flower_repr_create(struct nfp_app_fw_flower *app_fw_flower, struct nfp_net_hw_priv *hw_priv) { int ret; + uint8_t num_pf_reprs; struct nfp_pf_dev *pf_dev; struct rte_pci_device *pci_dev; struct rte_eth_devargs eth_da = { @@ -1037,8 +1038,13 @@ nfp_flower_repr_create(struct nfp_app_fw_flower *app_fw_flower, return 0; } - /* There always exist phy repr */ - if (eth_da.nb_representor_ports < pf_dev->total_phyports + 1) { + /* Calculate the number of pf repr */ + if (pf_dev->multi_pf.enabled) + num_pf_reprs = 0; + else + num_pf_reprs = 1; + + if (eth_da.nb_representor_ports < pf_dev->total_phyports + num_pf_reprs) { PMD_INIT_LOG(ERR, "Should also create repr port for phy port and PF vNIC."); return -ERANGE; } @@ -1052,7 +1058,7 @@ nfp_flower_repr_create(struct nfp_app_fw_flower *app_fw_flower, /* Fill in flower app with repr counts */ app_fw_flower->num_phyport_reprs = pf_dev->total_phyports; app_fw_flower->num_vf_reprs = eth_da.nb_representor_ports - - pf_dev->total_phyports - 1; + pf_dev->total_phyports - num_pf_reprs; if (pf_dev->max_vfs != 0 && pf_dev->sriov_vf < app_fw_flower->num_vf_reprs) { PMD_INIT_LOG(ERR, "The VF repr nums %d is bigger than VF nums %d.", app_fw_flower->num_vf_reprs, pf_dev->sriov_vf); -- 2.39.1