[PATCH 4/6] net/nfp: fix disable CPP service

Chaoyong He chaoyong.he at corigine.com
Wed Jun 19 05:06:53 CEST 2024


From: Long Wu <long.wu at corigine.com>

The CPP service is enabled in 'nfp_pf_init()', so it should be disabled
in corresponding free function 'nfp_pf_uninit()'.

Fixes: 600f6d2c7704 ("net/nfp: add service module")
Cc: stable at dpdk.org

Signed-off-by: Long Wu <long.wu at corigine.com>
Reviewed-by: Peng Zhang <peng.zhang at corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he at corigine.com>
---
 drivers/net/nfp/flower/nfp_flower_representor.c | 3 ---
 drivers/net/nfp/nfp_cpp_bridge.c                | 6 ++++++
 drivers/net/nfp/nfp_cpp_bridge.h                | 1 +
 drivers/net/nfp/nfp_ethdev.c                    | 1 +
 4 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/net/nfp/flower/nfp_flower_representor.c b/drivers/net/nfp/flower/nfp_flower_representor.c
index f1451fcca2..700957f945 100644
--- a/drivers/net/nfp/flower/nfp_flower_representor.c
+++ b/drivers/net/nfp/flower/nfp_flower_representor.c
@@ -457,9 +457,6 @@ nfp_flower_repr_dev_close(struct rte_eth_dev *dev)
 	/* Stop flower service first */
 	nfp_flower_service_stop(app_fw_flower, hw_priv);
 
-	/* Disable cpp service */
-	nfp_service_disable(&pf_dev->cpp_service_info);
-
 	/* Now it is safe to free all PF resources */
 	nfp_uninit_app_fw_flower(hw_priv);
 	nfp_pf_uninit(hw_priv);
diff --git a/drivers/net/nfp/nfp_cpp_bridge.c b/drivers/net/nfp/nfp_cpp_bridge.c
index 441c0d2843..fc73fa20ab 100644
--- a/drivers/net/nfp/nfp_cpp_bridge.c
+++ b/drivers/net/nfp/nfp_cpp_bridge.c
@@ -45,6 +45,12 @@ nfp_enable_cpp_service(struct nfp_pf_dev *pf_dev)
 	return 0;
 }
 
+void
+nfp_disable_cpp_service(struct nfp_pf_dev *pf_dev)
+{
+	nfp_service_disable(&pf_dev->cpp_service_info);
+}
+
 /*
  * Serving a write request to NFP from host programs. The request
  * sends the write size and the CPP target. The bridge makes use
diff --git a/drivers/net/nfp/nfp_cpp_bridge.h b/drivers/net/nfp/nfp_cpp_bridge.h
index 406c961dce..93026c10f4 100644
--- a/drivers/net/nfp/nfp_cpp_bridge.h
+++ b/drivers/net/nfp/nfp_cpp_bridge.h
@@ -9,5 +9,6 @@
 #include "nfp_net_common.h"
 
 int nfp_enable_cpp_service(struct nfp_pf_dev *pf_dev);
+void nfp_disable_cpp_service(struct nfp_pf_dev *pf_dev);
 
 #endif /* __NFP_CPP_BRIDGE_H__ */
diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c
index ddbbd736db..76bbaf1f50 100644
--- a/drivers/net/nfp/nfp_ethdev.c
+++ b/drivers/net/nfp/nfp_ethdev.c
@@ -641,6 +641,7 @@ nfp_pf_uninit(struct nfp_net_hw_priv *hw_priv)
 {
 	struct nfp_pf_dev *pf_dev = hw_priv->pf_dev;
 
+	nfp_disable_cpp_service(pf_dev);
 	nfp_cpp_area_release_free(pf_dev->mac_stats_area);
 	nfp_cpp_area_release_free(pf_dev->qc_area);
 	free(pf_dev->sym_tbl);
-- 
2.39.1



More information about the dev mailing list