Add a new flag field 'is_pf' into 'struct nfp_net_hw_priv', to indicate
if the device is PF or not.

Signed-off-by: Chaoyong He <chaoyong...@corigine.com>
Reviewed-by: Long Wu <long...@corigine.com>
---
 drivers/net/nfp/nfp_ethdev.c     | 2 ++
 drivers/net/nfp/nfp_net_common.c | 6 +++---
 drivers/net/nfp/nfp_net_common.h | 2 ++
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c
index bd35df2dc9..181fd74efe 100644
--- a/drivers/net/nfp/nfp_ethdev.c
+++ b/drivers/net/nfp/nfp_ethdev.c
@@ -2298,6 +2298,7 @@ nfp_pf_init(struct rte_pci_device *pci_dev)
        if (ret != 0)
                goto vf_cfg_tbl_cleanup;
 
+       hw_priv->is_pf = true;
        hw_priv->pf_dev = pf_dev;
        hw_priv->dev_info = dev_info;
 
@@ -2544,6 +2545,7 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev)
        pf_dev->pci_dev = pci_dev;
        pf_dev->sync = sync;
 
+       hw_priv->is_pf = true;
        hw_priv->pf_dev = pf_dev;
        hw_priv->dev_info = dev_info;
 
diff --git a/drivers/net/nfp/nfp_net_common.c b/drivers/net/nfp/nfp_net_common.c
index 3d916cd147..b471fd032a 100644
--- a/drivers/net/nfp/nfp_net_common.c
+++ b/drivers/net/nfp/nfp_net_common.c
@@ -783,7 +783,7 @@ nfp_net_link_update_common(struct rte_eth_dev *dev,
 
        hw_priv = dev->process_private;
        if (link->link_status == RTE_ETH_LINK_UP) {
-               if (hw_priv->pf_dev != NULL) {
+               if (hw_priv->is_pf) {
                        nfp_net_speed_aneg_update(dev, hw, hw_priv, link);
                } else {
                        /*
@@ -845,7 +845,7 @@ nfp_net_link_update(struct rte_eth_dev *dev,
         * Not applicable for VFs as the associated PF is still attached to the
         * kernel driver.
         */
-       if (hw_priv != NULL && hw_priv->pf_dev != NULL)
+       if (hw_priv != NULL && hw_priv->is_pf)
                nfp_net_notify_port_speed(hw, &link);
 
        return ret;
@@ -1366,7 +1366,7 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct 
rte_eth_dev_info *dev_info)
        }
 
        /* Only PF supports getting speed capability. */
-       if (hw_priv->pf_dev != NULL)
+       if (hw_priv->is_pf)
                dev_info->speed_capa = hw_priv->pf_dev->speed_capa;
 
        return 0;
diff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h
index bebb754ced..67ec5a2d89 100644
--- a/drivers/net/nfp/nfp_net_common.h
+++ b/drivers/net/nfp/nfp_net_common.h
@@ -207,6 +207,8 @@ struct nfp_net_hw_priv {
 
        /** NFP ASIC params */
        const struct nfp_dev_info *dev_info;
+
+       bool is_pf;
 };
 
 struct nfp_net_hw {
-- 
2.39.1

Reply via email to