From: Peng Zhang <peng.zh...@corigine.com>

Adjust the logic to also support the flower firmware
with multiple PF.

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/nfp_ethdev.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c
index d560bd695f..9867db9729 100644
--- a/drivers/net/nfp/nfp_ethdev.c
+++ b/drivers/net/nfp/nfp_ethdev.c
@@ -1504,6 +1504,9 @@ nfp_enable_multi_pf(struct nfp_pf_dev *pf_dev)
        struct nfp_cpp_area *area;
        char name[RTE_ETH_NAME_MAX_LEN];
 
+       if (!pf_dev->multi_pf.enabled)
+               return 0;
+
        memset(&net_hw, 0, sizeof(struct nfp_net_hw));
 
        /* Map the symbol table */
@@ -1872,12 +1875,6 @@ nfp_fw_app_primary_init(struct nfp_net_hw_priv *hw_priv)
 
        switch (pf_dev->app_fw_id) {
        case NFP_APP_FW_CORE_NIC:
-               if (pf_dev->multi_pf.enabled) {
-                       ret = nfp_enable_multi_pf(pf_dev);
-                       if (ret != 0)
-                               return ret;
-               }
-
                PMD_INIT_LOG(INFO, "Initializing coreNIC");
                ret = nfp_init_app_fw_nic(hw_priv);
                if (ret != 0) {
@@ -2248,6 +2245,10 @@ nfp_pf_init(struct rte_pci_device *pci_dev)
                goto mac_stats_cleanup;
        }
 
+       ret = nfp_enable_multi_pf(pf_dev);
+       if (ret != 0)
+               goto vf_cfg_tbl_cleanup;
+
        hw_priv->pf_dev = pf_dev;
        hw_priv->dev_info = dev_info;
 
-- 
2.39.1

Reply via email to