[v2,08/27] net/nfp: using the DPDK memory management API

Message ID 20230830021457.2064750-9-chaoyong.he@corigine.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers
Series refact the nfpcore module |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Chaoyong He Aug. 30, 2023, 2:14 a.m. UTC
  Revise the logic, using the DPDK memory management API to replace the
malloc()/free().

Signed-off-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@corigine.com>
---
 drivers/net/nfp/flower/nfp_flower.c    |  2 +-
 drivers/net/nfp/nfp_ethdev.c           |  8 ++++----
 drivers/net/nfp/nfpcore/nfp_cppcore.c  | 10 +++++-----
 drivers/net/nfp/nfpcore/nfp_hwinfo.c   |  6 +++---
 drivers/net/nfp/nfpcore/nfp_mip.c      |  6 +++---
 drivers/net/nfp/nfpcore/nfp_mutex.c    |  4 ++--
 drivers/net/nfp/nfpcore/nfp_nffw.c     |  8 +++-----
 drivers/net/nfp/nfpcore/nfp_nsp.c      |  6 +++---
 drivers/net/nfp/nfpcore/nfp_nsp_cmds.c |  8 +++-----
 drivers/net/nfp/nfpcore/nfp_nsp_eth.c  | 19 ++++++++-----------
 drivers/net/nfp/nfpcore/nfp_resource.c | 10 ++++------
 11 files changed, 39 insertions(+), 48 deletions(-)
  

Patch

diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c
index 77dab864f3..37895e8355 100644
--- a/drivers/net/nfp/flower/nfp_flower.c
+++ b/drivers/net/nfp/flower/nfp_flower.c
@@ -225,7 +225,7 @@  nfp_flower_pf_close(struct rte_eth_dev *dev)
 	PMD_DRV_LOG(INFO, "Freeing PF resources");
 	nfp_cpp_area_free(pf_dev->ctrl_area);
 	nfp_cpp_area_free(pf_dev->hwqueues_area);
-	free(pf_dev->hwinfo);
+	rte_free(pf_dev->hwinfo);
 	free(pf_dev->sym_tbl);
 	nfp_cpp_free(pf_dev->cpp);
 	rte_free(app_fw_flower);
diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c
index e3ff3d8087..2e43055fd5 100644
--- a/drivers/net/nfp/nfp_ethdev.c
+++ b/drivers/net/nfp/nfp_ethdev.c
@@ -47,7 +47,7 @@  nfp_net_pf_read_mac(struct nfp_app_fw_nic *app_fw_nic, int port)
 
 	rte_ether_addr_copy(&nfp_eth_table->ports[port].mac_addr, &hw->mac_addr);
 
-	free(nfp_eth_table);
+	rte_free(nfp_eth_table);
 	return 0;
 }
 
@@ -312,7 +312,7 @@  nfp_net_close(struct rte_eth_dev *dev)
 	PMD_INIT_LOG(INFO, "Freeing PF resources");
 	nfp_cpp_area_free(pf_dev->ctrl_area);
 	nfp_cpp_area_free(pf_dev->hwqueues_area);
-	free(pf_dev->hwinfo);
+	rte_free(pf_dev->hwinfo);
 	free(pf_dev->sym_tbl);
 	nfp_cpp_free(pf_dev->cpp);
 	rte_free(app_fw_nic);
@@ -1047,9 +1047,9 @@  nfp_pf_init(struct rte_pci_device *pci_dev)
 sym_tbl_cleanup:
 	free(sym_tbl);
 eth_table_cleanup:
-	free(nfp_eth_table);
+	rte_free(nfp_eth_table);
 hwinfo_cleanup:
-	free(hwinfo);
+	rte_free(hwinfo);
 cpp_cleanup:
 	nfp_cpp_free(cpp);
 
diff --git a/drivers/net/nfp/nfpcore/nfp_cppcore.c b/drivers/net/nfp/nfpcore/nfp_cppcore.c
index f601907673..1e0608a8e4 100644
--- a/drivers/net/nfp/nfpcore/nfp_cppcore.c
+++ b/drivers/net/nfp/nfpcore/nfp_cppcore.c
@@ -866,7 +866,7 @@  nfp_cpp_alloc(struct rte_pci_device *dev,
 	if (ops == NULL || ops->init == NULL)
 		return NULL;
 
-	cpp = calloc(1, sizeof(*cpp));
+	cpp = rte_zmalloc(NULL, sizeof(*cpp), 0);
 	if (cpp == NULL)
 		return NULL;
 
@@ -876,7 +876,7 @@  nfp_cpp_alloc(struct rte_pci_device *dev,
 	if (cpp->op->init) {
 		err = cpp->op->init(cpp, dev);
 		if (err < 0) {
-			free(cpp);
+			rte_free(cpp);
 			return NULL;
 		}
 	}
@@ -891,7 +891,7 @@  nfp_cpp_alloc(struct rte_pci_device *dev,
 			err = nfp_xpb_readl(cpp, xpbaddr,
 					(uint32_t *)&cpp->imb_cat_table[tgt]);
 			if (err < 0) {
-				free(cpp);
+				rte_free(cpp);
 				return NULL;
 			}
 		}
@@ -900,7 +900,7 @@  nfp_cpp_alloc(struct rte_pci_device *dev,
 	err = nfp_cpp_set_mu_locality_lsb(cpp);
 	if (err < 0) {
 		PMD_DRV_LOG(ERR, "Can't calculate MU locality bit offset");
-		free(cpp);
+		rte_free(cpp);
 		return NULL;
 	}
 
@@ -922,7 +922,7 @@  nfp_cpp_free(struct nfp_cpp *cpp)
 	if (cpp->serial_len != 0)
 		free(cpp->serial);
 
-	free(cpp);
+	rte_free(cpp);
 }
 
 /**
diff --git a/drivers/net/nfp/nfpcore/nfp_hwinfo.c b/drivers/net/nfp/nfpcore/nfp_hwinfo.c
index f5579ab60f..7abf9c7700 100644
--- a/drivers/net/nfp/nfpcore/nfp_hwinfo.c
+++ b/drivers/net/nfp/nfpcore/nfp_hwinfo.c
@@ -109,7 +109,7 @@  nfp_hwinfo_try_fetch(struct nfp_cpp *cpp,
 	if (*cpp_size < HWINFO_SIZE_MIN)
 		return NULL;
 
-	db = malloc(*cpp_size + 1);
+	db = rte_zmalloc(NULL, *cpp_size + 1, 0);
 	if (db == NULL)
 		return NULL;
 
@@ -134,7 +134,7 @@  nfp_hwinfo_try_fetch(struct nfp_cpp *cpp,
 
 	return (void *)db;
 exit_free:
-	free(db);
+	rte_free(db);
 	return NULL;
 }
 
@@ -175,7 +175,7 @@  nfp_hwinfo_read(struct nfp_cpp *cpp)
 
 	err = nfp_hwinfo_db_validate(db, hwdb_size);
 	if (err != 0) {
-		free(db);
+		rte_free(db);
 		return NULL;
 	}
 	return db;
diff --git a/drivers/net/nfp/nfpcore/nfp_mip.c b/drivers/net/nfp/nfpcore/nfp_mip.c
index 0892c99e96..3c59582846 100644
--- a/drivers/net/nfp/nfpcore/nfp_mip.c
+++ b/drivers/net/nfp/nfpcore/nfp_mip.c
@@ -104,14 +104,14 @@  nfp_mip_open(struct nfp_cpp *cpp)
 	int err;
 	struct nfp_mip *mip;
 
-	mip = malloc(sizeof(*mip));
+	mip = rte_zmalloc(NULL, sizeof(*mip), 0);
 	if (mip == NULL)
 		return NULL;
 
 	err = nfp_mip_read_resource(cpp, mip);
 	if (err != 0) {
 		PMD_DRV_LOG(ERR, "Failed to read MIP resource");
-		free(mip);
+		rte_free(mip);
 		return NULL;
 	}
 
@@ -123,7 +123,7 @@  nfp_mip_open(struct nfp_cpp *cpp)
 void
 nfp_mip_close(struct nfp_mip *mip)
 {
-	free(mip);
+	rte_free(mip);
 }
 
 const char *
diff --git a/drivers/net/nfp/nfpcore/nfp_mutex.c b/drivers/net/nfp/nfpcore/nfp_mutex.c
index 404d4fa938..5392924cf0 100644
--- a/drivers/net/nfp/nfpcore/nfp_mutex.c
+++ b/drivers/net/nfp/nfpcore/nfp_mutex.c
@@ -163,7 +163,7 @@  nfp_cpp_mutex_alloc(struct nfp_cpp *cpp,
 	if (tmp != key)
 		return NULL;
 
-	mutex = calloc(sizeof(*mutex), 1);
+	mutex = rte_zmalloc(NULL, sizeof(*mutex), 0);
 	if (mutex == NULL)
 		return NULL;
 
@@ -209,7 +209,7 @@  nfp_cpp_mutex_free(struct nfp_cpp_mutex *mutex)
 	if (mutex->cpp && mutex == mutex->cpp->mutex_cache)
 		mutex->cpp->mutex_cache = mutex->next;
 
-	free(mutex);
+	rte_free(mutex);
 }
 
 /**
diff --git a/drivers/net/nfp/nfpcore/nfp_nffw.c b/drivers/net/nfp/nfpcore/nfp_nffw.c
index af55671a88..a635239b30 100644
--- a/drivers/net/nfp/nfpcore/nfp_nffw.c
+++ b/drivers/net/nfp/nfpcore/nfp_nffw.c
@@ -128,12 +128,10 @@  nfp_nffw_info_open(struct nfp_cpp *cpp)
 	struct nfp_nffw_info *state;
 	struct nfp_nffw_info_data *fwinf;
 
-	state = malloc(sizeof(*state));
+	state = rte_zmalloc(NULL, sizeof(*state), 0);
 	if (state == NULL)
 		return NULL;
 
-	memset(state, 0, sizeof(*state));
-
 	state->res = nfp_resource_acquire(cpp, NFP_RESOURCE_NFP_NFFW);
 	if (state->res == NULL) {
 		PMD_DRV_LOG(ERR, "NFFW - acquire resource failed");
@@ -166,7 +164,7 @@  nfp_nffw_info_open(struct nfp_cpp *cpp)
 err_release:
 	nfp_resource_release(state->res);
 err_free:
-	free(state);
+	rte_free(state);
 	return NULL;
 }
 
@@ -180,7 +178,7 @@  void
 nfp_nffw_info_close(struct nfp_nffw_info *state)
 {
 	nfp_resource_release(state->res);
-	free(state);
+	rte_free(state);
 }
 
 /**
diff --git a/drivers/net/nfp/nfpcore/nfp_nsp.c b/drivers/net/nfp/nfpcore/nfp_nsp.c
index 039e4729bd..dd2d19936d 100644
--- a/drivers/net/nfp/nfpcore/nfp_nsp.c
+++ b/drivers/net/nfp/nfpcore/nfp_nsp.c
@@ -128,12 +128,12 @@  nfp_nsp_open(struct nfp_cpp *cpp)
 		return NULL;
 	}
 
-	state = malloc(sizeof(*state));
+	state = rte_zmalloc(NULL, sizeof(*state), 0);
 	if (state == NULL) {
 		nfp_resource_release(res);
 		return NULL;
 	}
-	memset(state, 0, sizeof(*state));
+
 	state->cpp = cpp;
 	state->res = res;
 
@@ -157,7 +157,7 @@  void
 nfp_nsp_close(struct nfp_nsp *state)
 {
 	nfp_resource_release(state->res);
-	free(state);
+	rte_free(state);
 }
 
 uint16_t
diff --git a/drivers/net/nfp/nfpcore/nfp_nsp_cmds.c b/drivers/net/nfp/nfpcore/nfp_nsp_cmds.c
index 3081e22dad..54e1e2215d 100644
--- a/drivers/net/nfp/nfpcore/nfp_nsp_cmds.c
+++ b/drivers/net/nfp/nfpcore/nfp_nsp_cmds.c
@@ -33,22 +33,20 @@  __nfp_nsp_identify(struct nfp_nsp *nsp)
 	if (nfp_nsp_get_abi_ver_minor(nsp) < 15)
 		return NULL;
 
-	ni = malloc(sizeof(*ni));
+	ni = rte_zmalloc(NULL, sizeof(*ni), 0);
 	if (ni == NULL)
 		return NULL;
 
-	memset(ni, 0, sizeof(*ni));
 	ret = nfp_nsp_read_identify(nsp, ni, sizeof(*ni));
 	if (ret < 0) {
 		PMD_DRV_LOG(ERR, "reading bsp version failed %d", ret);
 		goto exit_free;
 	}
 
-	nspi = malloc(sizeof(*nspi));
+	nspi = rte_zmalloc(NULL, sizeof(*nspi), 0);
 	if (nspi == NULL)
 		goto exit_free;
 
-	memset(nspi, 0, sizeof(*nspi));
 	memcpy(nspi->version, ni->version, sizeof(nspi->version));
 	nspi->version[sizeof(nspi->version) - 1] = '\0';
 	nspi->flags = ni->flags;
@@ -61,7 +59,7 @@  __nfp_nsp_identify(struct nfp_nsp *nsp)
 	nspi->sensor_mask = rte_le_to_cpu_64(ni->sensor_mask);
 
 exit_free:
-	free(ni);
+	rte_free(ni);
 	return nspi;
 }
 
diff --git a/drivers/net/nfp/nfpcore/nfp_nsp_eth.c b/drivers/net/nfp/nfpcore/nfp_nsp_eth.c
index e32884e7d3..1906fcd385 100644
--- a/drivers/net/nfp/nfpcore/nfp_nsp_eth.c
+++ b/drivers/net/nfp/nfpcore/nfp_nsp_eth.c
@@ -252,11 +252,10 @@  __nfp_eth_read_ports(struct nfp_nsp *nsp)
 	union eth_table_entry *entries;
 	const struct rte_ether_addr *mac;
 
-	entries = malloc(NSP_ETH_TABLE_SIZE);
+	entries = rte_zmalloc(NULL, NSP_ETH_TABLE_SIZE, 0);
 	if (entries == NULL)
 		return NULL;
 
-	memset(entries, 0, NSP_ETH_TABLE_SIZE);
 	ret = nfp_nsp_read_eth_table(nsp, entries, NSP_ETH_TABLE_SIZE);
 	if (ret < 0) {
 		PMD_DRV_LOG(ERR, "Reading port table failed %d", ret);
@@ -286,11 +285,10 @@  __nfp_eth_read_ports(struct nfp_nsp *nsp)
 	}
 
 	table_sz = sizeof(*table) + sizeof(struct nfp_eth_table_port) * cnt;
-	table = malloc(table_sz);
+	table = rte_zmalloc(NULL, table_sz, 0);
 	if (table == NULL)
 		goto err;
 
-	memset(table, 0, table_sz);
 	table->count = cnt;
 	for (i = 0, j = 0; i < NSP_ETH_MAX_COUNT; i++) {
 		mac = (const struct rte_ether_addr *)entries[i].mac_addr;
@@ -304,12 +302,12 @@  __nfp_eth_read_ports(struct nfp_nsp *nsp)
 	for (i = 0; i < table->count; i++)
 		nfp_eth_calc_port_type(&table->ports[i]);
 
-	free(entries);
+	rte_free(entries);
 
 	return table;
 
 err:
-	free(entries);
+	rte_free(entries);
 	return NULL;
 }
 
@@ -348,14 +346,13 @@  nfp_eth_config_start(struct nfp_cpp *cpp,
 	struct nfp_nsp *nsp;
 	union eth_table_entry *entries;
 
-	entries = malloc(NSP_ETH_TABLE_SIZE);
+	entries = rte_zmalloc(NULL, NSP_ETH_TABLE_SIZE, 0);
 	if (entries == NULL)
 		return NULL;
 
-	memset(entries, 0, NSP_ETH_TABLE_SIZE);
 	nsp = nfp_nsp_open(cpp);
 	if (nsp == NULL) {
-		free(entries);
+		rte_free(entries);
 		return nsp;
 	}
 
@@ -375,7 +372,7 @@  nfp_eth_config_start(struct nfp_cpp *cpp,
 
 err:
 	nfp_nsp_close(nsp);
-	free(entries);
+	rte_free(entries);
 	return NULL;
 }
 
@@ -387,7 +384,7 @@  nfp_eth_config_cleanup_end(struct nfp_nsp *nsp)
 	nfp_nsp_config_set_modified(nsp, 0);
 	nfp_nsp_config_clear_state(nsp);
 	nfp_nsp_close(nsp);
-	free(entries);
+	rte_free(entries);
 }
 
 /**
diff --git a/drivers/net/nfp/nfpcore/nfp_resource.c b/drivers/net/nfp/nfpcore/nfp_resource.c
index bdebf5c3aa..8ba3784f8a 100644
--- a/drivers/net/nfp/nfpcore/nfp_resource.c
+++ b/drivers/net/nfp/nfpcore/nfp_resource.c
@@ -161,19 +161,17 @@  nfp_resource_acquire(struct nfp_cpp *cpp,
 	struct nfp_resource *res;
 	struct nfp_cpp_mutex *dev_mutex;
 
-	res = malloc(sizeof(*res));
+	res = rte_zmalloc(NULL, sizeof(*res), 0);
 	if (res == NULL)
 		return NULL;
 
-	memset(res, 0, sizeof(*res));
-
 	strncpy(res->name, name, NFP_RESOURCE_ENTRY_NAME_SZ);
 
 	dev_mutex = nfp_cpp_mutex_alloc(cpp, NFP_RESOURCE_TBL_TARGET,
 			NFP_RESOURCE_TBL_BASE, NFP_RESOURCE_TBL_KEY);
 	if (dev_mutex == NULL) {
 		PMD_DRV_LOG(ERR, "RESOURCE - CPP mutex alloc failed");
-		free(res);
+		rte_free(res);
 		return NULL;
 	}
 
@@ -204,7 +202,7 @@  nfp_resource_acquire(struct nfp_cpp *cpp,
 
 err_free:
 	nfp_cpp_mutex_free(dev_mutex);
-	free(res);
+	rte_free(res);
 	return NULL;
 }
 
@@ -221,7 +219,7 @@  nfp_resource_release(struct nfp_resource *res)
 {
 	nfp_cpp_mutex_unlock(res->mutex);
 	nfp_cpp_mutex_free(res->mutex);
-	free(res);
+	rte_free(res);
 }
 
 /**