Revise the logic, using the DPDK memory management API to replace the malloc()/free().
Signed-off-by: Chaoyong He <chaoyong...@corigine.com> Reviewed-by: Niklas Söderlund <niklas.soderl...@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(-) 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); } /** -- 2.39.1