Skip to contentSkip to conversation

remove unnecessary null checks

PATCH Superseded Stephen Hemminger 17 participants 247 messages Jan 24, 2022 – Feb 12, 2022 Page 1 of 2

Subsystems (7)
lore
Share & tools
lore
#0 lore raw

cover remove unnecessary null checks

While working on a new driver, noticed that some drivers always call free routines (correct) and others conditionally call free routines if not null (redundant check). The extra if(e != NULL) type check is unneeded and adds extra code. Better to have all the code consistent.

The Linux kernel has automated this kind of fixup using coccinelle, and this patchset creates a coccinelle script to do the transformation; then has individual patches for each sub component.

In one driver dpaaxx, the change suggested a further change to the compat macros to make them even simpler.

Stephen Hemminger (82):
devtools/cocci: add script to fix unnecessary null checks
eal: remove unnecessary NULL checks
eal/windows: remove unnecessary NULL checks before free examples/fips_validation: remove unnecessary NULL checks examples/ip_pipeline: remove unnecessary NULL checks examples/pipeline/thread: remove unnecessary NULL checks examples/l2fwd-cat: remove unnecessary NULL checks lib/vhost: remove unnecessary NULL checks examples/vhost_blk: remove unnecessary NULL checks app/pdump: remove unnecessary NULL checks app/test-crypto-perf: remove unnecessary NULL checks app/test-pmd: remove unnecessary NULL checks app/test-regex: remove unnecessary NULL checks app/test: remove unnecessary NULL checks baseband/acc100 remove unnecessary NULL checks baseband/la12xx remove unnecessary NULL checks baseband/null remove unnecessary NULL checks baseband/turbo_sw remove unnecessary NULL checks bus/fslmc: remove unnecessary NULL checks bus/ifpga: remove unnecessary NULL checks bus/pci: remove unnecessary NULL checks common/cpt: remove unnecessary NULL checks common/dpaax: simplify kernel compat macros common/mlx5: remove unnecessary NULL checks common/qat: remove unnecessary NULL checks compress/mlx5: remove unnecessary NULL checks compress/octeontx: remove unnecessary NULL checks crypto/armv8: remove unnecessary NULL checks crypto/ccp: remove unnecessary NULL checks crypto/cnxk: remove unnecessary NULL checks crypto/ipsec_mb: remove unnecessary NULL checks crypto/mvsam: remove unnecessary NULL checks crypto/null: remove unnecessary NULL checks crypto/octeontx: remove unnecessary NULL checks crypto/openssl: remove unnecessary NULL checks crypto/scheduler: remove unnecessary NULL checks crypto/virtio: remove unnecessary NULL checks event/sw: remove unnecessary NULL checks net/axgbe: remove unnecessary NULL checks net/bnx2x: remove unnecessary NULL checks net/bnxt: remove unnecessary NULL checks net/bonding: remove unnecessary NULL checks net/cnxk: remove unnecessary NULL checks net/cxgbe: remove unnecessary NULL checks net/dpaa: remove unnecessary NULL checks net/dpaa2: remove unnecessary NULL checks net/ena: remove unnecessary NULL checks net/hinic: remove unnecessary NULL checks net/hns3: remove unnecessary NULL checks net/i40e: remove unnecessary NULL checks net/iavf: remove unnecessary NULL checks net/ice: remove unnecessary NULL checks
net/igc: remove unnecessary NULL checks net/ixgbe: remove unnecessary NULL checks net/memif: remove unnecessary NULL checks net/mlx4: remove unnecessary NULL checks net/mlx5: remove unnecessary NULL checks net/mvpp2: remove unnecessary NULL checks net/netvsc: remove unnecessary NULL checks net/null: remove unnecessary NULL checks net/octeontx: remove unnecessary NULL checks net/qede: remove unnecessary NULL checks net/softnic: remove unnecessary NULL checks net/tap: remove unnecessary NULL checks net/txgbe: remove unnecessary NULL checks net/vdev_netvsc: remove unnecessary NULL checks net/virtio: remove unnecessary NULL checks raw/cnxk_bphy: remove unnecessary NULL checks raw/dpaa2_qdma: remove unnecessary NULL checks raw/ifpga: remove unnecessary NULL checks raw/skeleton: remove unnecessary NULL checks regex/cn9k: remove unnecessary NULL checks regex/mlx5: remove unnecessary NULL checks vdpa/ifc: remove unnecessary NULL checks vdpa/mlx5: remove unnecessary NULL checks
compressdev: remove unnecessary NULL checks
ethdev: remove unnecessary NULL checks
graph: remove unnecessary NULL checks
ipsec: remove unnecessary NULL checks
port: remove unnecessary NULL checks
power: remove unnecessary NULL checks
reorder: remove unnecessary NULL checks

 app/pdump/main.c                              |  9 ++--
 app/test-crypto-perf/cperf_test_latency.c     |  3 +-
 .../cperf_test_pmd_cyclecount.c               |  9 ++--
 app/test-crypto-perf/cperf_test_throughput.c  |  3 +-
 .../cperf_test_vector_parsing.c               |  6 +--
 app/test-crypto-perf/cperf_test_verify.c      |  3 +-
 app/test-pmd/cmd_flex_item.c                  |  3 +-
 app/test-pmd/cmdline.c                        |  3 +-
 app/test-pmd/testpmd.c                        |  3 +-
 app/test-regex/main.c                         | 12 ++---
 app/test/test_cksum.c                         |  3 +-
 app/test/test_compressdev.c                   |  3 +-
 app/test/test_cryptodev.h                     |  3 +-
 app/test/test_cryptodev_asym.c                |  3 +-
 app/test/test_cryptodev_blockcipher.c         | 12 ++---
 app/test/test_func_reentrancy.c               | 15 +++----
 app/test/test_hash.c                          | 15 +++----
 app/test/test_hash_perf.c                     |  7 +--
 app/test/test_link_bonding.c                  |  9 ++--
 app/test/test_link_bonding_mode4.c            |  3 +-
 app/test/test_malloc.c                        |  5 +--
 app/test/test_mbuf.c                          | 45 +++++++------------
 app/test/test_pcapng.c                        |  3 +-
 app/test/test_reorder.c                       | 15 +++----
 app/test/virtual_pmd.c                        |  3 +-
 devtools/cocci/nullfree.cocci                 | 33 ++++++++++++++
 drivers/baseband/acc100/rte_acc100_pmd.c      |  3 +-
 drivers/baseband/la12xx/bbdev_la12xx.c        |  3 +-
 drivers/baseband/null/bbdev_null.c            |  3 +-
 .../baseband/turbo_sw/bbdev_turbo_software.c  |  3 +-
 drivers/bus/fslmc/fslmc_bus.c                 |  6 +--
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c      |  6 +--
 drivers/bus/ifpga/ifpga_bus.c                 | 12 ++---
 drivers/bus/pci/pci_params.c                  |  3 +-
 drivers/bus/pci/windows/pci.c                 |  3 +-
 drivers/bus/pci/windows/pci_netuio.c          |  3 +-
 drivers/common/cpt/cpt_ucode_asym.h           |  6 +--
 drivers/common/dpaax/compat.h                 | 11 +----
 drivers/common/mlx5/mlx5_common_mr.c          |  3 +-
 drivers/common/mlx5/mlx5_common_pci.c         |  3 +-
 drivers/common/qat/qat_qp.c                   |  9 ++--
 drivers/compress/mlx5/mlx5_compress.c         |  3 +-
 drivers/compress/octeontx/otx_zip_pmd.c       |  9 ++--
 drivers/crypto/armv8/rte_armv8_pmd_ops.c      |  3 +-
 drivers/crypto/ccp/ccp_dev.c                  |  3 +-
 drivers/crypto/ccp/ccp_pmd_ops.c              |  3 +-
 drivers/crypto/cnxk/cnxk_ae.h                 |  6 +--
 drivers/crypto/ipsec_mb/ipsec_mb_ops.c        |  6 +--
 drivers/crypto/mvsam/rte_mrvl_pmd_ops.c       |  6 +--
 drivers/crypto/null/null_crypto_pmd_ops.c     |  6 +--
 drivers/crypto/octeontx/otx_cryptodev_ops.c   |  3 +-
 drivers/crypto/openssl/rte_openssl_pmd_ops.c  |  6 +--
 drivers/crypto/scheduler/scheduler_pmd_ops.c  |  6 +--
 drivers/crypto/virtio/virtqueue.c             |  6 +--
 drivers/event/sw/sw_evdev.c                   |  3 +-
 drivers/net/axgbe/axgbe_rxtx.c                |  6 +--
 drivers/net/bnx2x/bnx2x_rxtx.c                |  6 +--
 drivers/net/bnxt/bnxt_ethdev.c                |  3 +-
 drivers/net/bonding/rte_eth_bond_pmd.c        |  3 +-
 drivers/net/cnxk/cnxk_ethdev.c                |  6 +--
 drivers/net/cxgbe/cxgbe_main.c                |  3 +-
 drivers/net/dpaa/dpaa_ethdev.c                |  3 +-
 drivers/net/dpaa/fmlib/fm_lib.c               |  3 +-
 drivers/net/dpaa2/dpaa2_ethdev.c              |  3 +-
 drivers/net/dpaa2/dpaa2_mux.c                 |  3 +-
 drivers/net/dpaa2/dpaa2_ptp.c                 |  3 +-
 drivers/net/ena/ena_ethdev.c                  | 18 +++-----
 drivers/net/hinic/hinic_pmd_ethdev.c          |  3 +-
 drivers/net/hns3/hns3_rxtx.c                  |  9 ++--
 drivers/net/i40e/i40e_ethdev.c                | 27 ++++-------
 drivers/net/i40e/i40e_rxtx.c                  |  3 +-
 drivers/net/iavf/iavf_rxtx.c                  |  3 +-
 drivers/net/ice/ice_fdir_filter.c             |  6 +--
 drivers/net/igc/igc_flow.c                    |  3 +-
 drivers/net/ixgbe/ixgbe_ethdev.c              | 10 ++---
 drivers/net/ixgbe/ixgbe_rxtx.c                |  3 +-
 drivers/net/memif/rte_eth_memif.c             |  6 +--
 drivers/net/mlx4/mlx4_mr.c                    |  3 +-
 drivers/net/mlx5/mlx5_flow.c                  |  3 +-
 drivers/net/mvpp2/mrvl_qos.c                  |  3 +-
 drivers/net/netvsc/hn_rxtx.c                  |  6 +--
 drivers/net/null/rte_eth_null.c               |  3 +-
 drivers/net/octeontx/octeontx_ethdev.c        |  3 +-
 drivers/net/octeontx/octeontx_ethdev_ops.c    |  3 +-
 drivers/net/qede/qede_main.c                  |  3 +-
 drivers/net/qede/qede_rxtx.c                  |  6 +--
 drivers/net/softnic/rte_eth_softnic_cli.c     | 12 ++---
 .../net/softnic/rte_eth_softnic_cryptodev.c   |  6 +--
 drivers/net/softnic/rte_eth_softnic_thread.c  |  6 +--
 drivers/net/tap/tap_flow.c                    |  9 ++--
 drivers/net/txgbe/txgbe_ethdev.c              | 12 ++---
 drivers/net/vdev_netvsc/vdev_netvsc.c         |  3 +-
 drivers/net/virtio/virtio_user_ethdev.c       | 12 ++---
 drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c         |  3 +-
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c           | 15 +++----
 drivers/raw/ifpga/ifpga_rawdev.c              |  9 ++--
 drivers/raw/skeleton/skeleton_rawdev_test.c   |  6 +--
 drivers/regex/cn9k/cn9k_regexdev.c            |  6 +--
 drivers/regex/cn9k/cn9k_regexdev_compiler.c   |  3 +-
 drivers/regex/mlx5/mlx5_regex.c               |  3 +-
 drivers/regex/mlx5/mlx5_rxp.c                 |  3 +-
 drivers/vdpa/ifc/ifcvf_vdpa.c                 |  9 ++--
 drivers/vdpa/mlx5/mlx5_vdpa_mem.c             |  3 +-
 drivers/vdpa/mlx5/mlx5_vdpa_virtq.c           |  3 +-
 examples/fips_validation/fips_dev_self_test.c | 18 +++-----
 examples/fips_validation/fips_validation.c    |  3 +-
 examples/fips_validation/main.c               | 36 +++++----------
 examples/ip_pipeline/cli.c                    | 12 ++---
 examples/ip_pipeline/cryptodev.c              |  6 +--
 examples/ip_pipeline/thread.c                 |  6 +--
 examples/l2fwd-cat/cat.c                      |  3 +-
 examples/pipeline/thread.c                    |  6 +--
 examples/vhost_blk/vhost_blk.c                |  3 +-
 lib/compressdev/rte_compressdev.c             |  3 +-
 lib/eal/common/eal_common_devargs.c           |  6 +--
 lib/eal/common/eal_common_memzone.c           |  3 +-
 lib/eal/common/eal_common_options.c           |  9 ++--
 lib/eal/common/eal_common_trace_ctf.c         |  6 +--
 lib/eal/freebsd/eal.c                         |  4 +-
 lib/eal/linux/eal.c                           | 10 ++---
 lib/eal/windows/eal_alarm.c                   |  3 +-
 lib/eal/windows/eal_memory.c                  |  3 +-
 lib/ethdev/rte_ethdev.c                       |  3 +-
 lib/graph/graph_stats.c                       |  3 +-
 lib/ipsec/ipsec_sad.c                         |  3 +-
 lib/port/rte_port_source_sink.c               | 21 +++------
 lib/power/rte_power_empty_poll.c              |  3 +-
 lib/reorder/rte_reorder.c                     |  6 +--
 lib/vhost/iotlb.c                             |  3 +-
 lib/vhost/vhost_crypto.c                      |  6 +--
 lib/vhost/vhost_user.c                        |  9 ++--
 131 files changed, 306 insertions(+), 557 deletions(-)
 create mode 100644 devtools/cocci/nullfree.cocci
Signature · 1 line
2.30.2
#1 lore raw

PATCH 1/82 devtools/cocci: add script to fix unnecessary null checks

This script is based on the idea of the nullfree script in the Linux kernel. It finds cases where a check for null pointer is done, but is unneccessary because the function already handles NULL pointer.

Basic example:

       if (x->buf)
           rte_free(x->buf);
can be reduced to:
       rte_free(x->buf);
---
 devtools/cocci/nullfree.cocci | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 devtools/cocci/nullfree.cocci
devtools/cocci/nullfree.cocci new file +33 -0
new file mode 100644
index 000000000000..363b6149ac28
@@ -0,0 +1,33 @@
+//
+// Remove unnecessary NULL pointer checks before free functions
+// All these functions work like libc free which allows
+// free(NULL) as a no-op.
+//
+@@
+expression E;
+@@
+(
+- if (E != NULL) free(E);
++ free(E);
+|
+- if (E != NULL) rte_bitmap_free(E);
++ rte_bitmap_free(E);
+|
+- if (E != NULL) rte_free(E);
++ rte_free(E);
+|
+- if (E != NULL) rte_hash_free(E);
++ rte_hash_free(E);
+|
+- if (E != NULL) rte_ring_free(E);
++ rte_ring_free(E);
+|
+- if (E != NULL) rte_pktmbuf_free(E);
++ rte_pktmbuf_free(E);
+|
+- if (E != NULL) rte_mempool_free(E);
++ rte_mempool_free(E);
+|
+- if (E != NULL) rte_kvargs_free(E);
++ rte_kvargs_free(E);
+)
Signature · 1 line
2.30.2
#2 lore raw

PATCH 2/82 eal: remove unnecessary NULL checks

In reply to Stephen Hemminger

Functions like free() already handle NULL pointer so the checks here are not necessary.

---
 lib/eal/common/eal_common_devargs.c   |  6 ++----
 lib/eal/common/eal_common_memzone.c   |  3 +--
 lib/eal/common/eal_common_options.c   |  9 +++------
 lib/eal/common/eal_common_trace_ctf.c |  6 ++----
 lib/eal/freebsd/eal.c                 |  4 +---
 lib/eal/linux/eal.c                   | 10 +++-------
 6 files changed, 12 insertions(+), 26 deletions(-)
lib/eal/common/eal_common_devargs.c +2 -4
index 8c7650cf6c27..69004b0a2d2f 100644
@@ -161,8 +161,7 @@ rte_devargs_layers_parse(struct rte_devargs *devargs,
 
 get_out:
 	for (i = 0; i < RTE_DIM(layers); i++) {
-		if (layers[i].kvlist)
-			rte_kvargs_free(layers[i].kvlist);
+		rte_kvargs_free(layers[i].kvlist);
 	}
 	if (ret != 0) {
 		if (allocated_data) {
@@ -285,8 +284,7 @@ rte_devargs_reset(struct rte_devargs *da)
 {
 	if (da == NULL)
 		return;
-	if (da->data)
-		free(da->data);
+	free(da->data);
 	da->data = NULL;
 }
 
lib/eal/common/eal_common_memzone.c +1 -2
index ecde9441ee90..9a0c5309ac7e 100644
@@ -300,8 +300,7 @@ rte_memzone_free(const struct rte_memzone *mz)
 
 	rte_rwlock_write_unlock(&mcfg->mlock);
 
-	if (addr != NULL)
-		rte_free(addr);
+	rte_free(addr);
 
 	rte_eal_trace_memzone_free(name, addr, ret);
 	return ret;
lib/eal/common/eal_common_options.c +3 -6
index 1cfdd75f3b79..09b7b17ffa06 100644
@@ -1962,12 +1962,9 @@ compute_ctrl_threads_cpuset(struct internal_config *internal_cfg)
 int
 eal_cleanup_config(struct internal_config *internal_cfg)
 {
-	if (internal_cfg->hugefile_prefix != NULL)
-		free(internal_cfg->hugefile_prefix);
-	if (internal_cfg->hugepage_dir != NULL)
-		free(internal_cfg->hugepage_dir);
-	if (internal_cfg->user_mbuf_pool_ops_name != NULL)
-		free(internal_cfg->user_mbuf_pool_ops_name);
+	free(internal_cfg->hugefile_prefix);
+	free(internal_cfg->hugepage_dir);
+	free(internal_cfg->user_mbuf_pool_ops_name);
 
 	return 0;
 }
lib/eal/common/eal_common_trace_ctf.c +2 -4
index 33e419aac7fb..3b83bcdf57fd 100644
@@ -52,8 +52,7 @@ meta_copy(char **meta, int *offset, char *str, int rc)
 	return rc;
 
 free_str:
-	if (str)
-		free(str);
+	free(str);
 	return -ENOMEM;
 }
 
@@ -291,8 +290,7 @@ trace_metadata_create(void)
 	return 0;
 
 fail:
-	if (meta)
-		free(meta);
+	free(meta);
 	return -EBADF;
 }
 
lib/eal/freebsd/eal.c +1 -3
index a1cd2462db1b..00ba32f1d664 100644
@@ -544,9 +544,7 @@ eal_parse_args(int argc, char **argv)
 				RTE_LOG(ERR, EAL, "Could not store mbuf pool ops name\n");
 			else {
 				/* free old ops name */
-				if (internal_conf->user_mbuf_pool_ops_name !=
-						NULL)
-					free(internal_conf->user_mbuf_pool_ops_name);
+				free(internal_conf->user_mbuf_pool_ops_name);
 
 				internal_conf->user_mbuf_pool_ops_name =
 						ops_name;
lib/eal/linux/eal.c +3 -7
index 60b49248388e..f8e39b7e4277 100644
@@ -730,8 +730,7 @@ eal_parse_args(int argc, char **argv)
 				RTE_LOG(ERR, EAL, "Could not store hugepage directory\n");
 			else {
 				/* free old hugepage dir */
-				if (internal_conf->hugepage_dir != NULL)
-					free(internal_conf->hugepage_dir);
+				free(internal_conf->hugepage_dir);
 				internal_conf->hugepage_dir = hdir;
 			}
 			break;
@@ -743,8 +742,7 @@ eal_parse_args(int argc, char **argv)
 				RTE_LOG(ERR, EAL, "Could not store file prefix\n");
 			else {
 				/* free old prefix */
-				if (internal_conf->hugefile_prefix != NULL)
-					free(internal_conf->hugefile_prefix);
+				free(internal_conf->hugefile_prefix);
 				internal_conf->hugefile_prefix = prefix;
 			}
 			break;
@@ -804,9 +802,7 @@ eal_parse_args(int argc, char **argv)
 				RTE_LOG(ERR, EAL, "Could not store mbuf pool ops name\n");
 			else {
 				/* free old ops name */
-				if (internal_conf->user_mbuf_pool_ops_name !=
-						NULL)
-					free(internal_conf->user_mbuf_pool_ops_name);
+				free(internal_conf->user_mbuf_pool_ops_name);
 
 				internal_conf->user_mbuf_pool_ops_name =
 						ops_name;
Signature · 1 line
2.30.2
#3 lore raw

PATCH 3/82 eal/windows: remove unnecessary NULL checks before free

In reply to Stephen Hemminger

Calling free/rte_free/rte_mempool_free,... with NULL pointer is allowed; so remove unnecessary NULL checks.

---
 lib/eal/windows/eal_alarm.c  | 3 +--
 lib/eal/windows/eal_memory.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)
lib/eal/windows/eal_alarm.c +1 -2
index 103c1f909da3..51fe752c16d4 100644
@@ -162,8 +162,7 @@ rte_eal_alarm_set(uint64_t us, rte_eal_alarm_callback cb_fn, void *cb_arg)
 fail:
 	if (timer != NULL)
 		CloseHandle(timer);
-	if (ap != NULL)
-		free(ap);
+	free(ap);
 
 exit:
 	rte_eal_trace_alarm_set(us, cb_fn, cb_arg, ret);
lib/eal/windows/eal_memory.c +1 -2
index 2fd37d97085e..215d768e2c57 100644
@@ -190,8 +190,7 @@ eal_mem_virt2iova_init(void)
 	ret = 0;
 
 exit:
-	if (detail != NULL)
-		free(detail);
+	free(detail);
 	if (list != INVALID_HANDLE_VALUE)
 		SetupDiDestroyDeviceInfoList(list);
 
Signature · 1 line
2.30.2
#4 lore raw

PATCH 4/82 examples/fips_validation: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 examples/fips_validation/fips_dev_self_test.c | 18 ++++------
 examples/fips_validation/fips_validation.c    |  3 +-
 examples/fips_validation/main.c               | 36 +++++++------------
 3 files changed, 19 insertions(+), 38 deletions(-)
examples/fips_validation/fips_dev_self_test.c +6 -12
index b4eab05a9851..076e9de099c0 100644
@@ -1396,8 +1396,7 @@ check_aead_result(struct rte_crypto_op *op,
 	if (!mbuf)
 		return -1;
 
-	if (op->sym->aead.aad.data)
-		rte_free(op->sym->aead.aad.data);
+	rte_free(op->sym->aead.aad.data);
 
 	if (dir == self_test_dir_enc_auth_gen) {
 		src = vec->output.data;
@@ -1523,18 +1522,13 @@ static void
 fips_dev_auto_test_uninit(uint8_t dev_id,
 		struct fips_dev_auto_test_env *env)
 {
-	if (env->mbuf)
-		rte_pktmbuf_free(env->mbuf);
+	rte_pktmbuf_free(env->mbuf);
 	if (env->op)
 		rte_crypto_op_free(env->op);
-	if (env->mpool)
-		rte_mempool_free(env->mpool);
-	if (env->op_pool)
-		rte_mempool_free(env->op_pool);
-	if (env->sess_pool)
-		rte_mempool_free(env->sess_pool);
-	if (env->sess_priv_pool)
-		rte_mempool_free(env->sess_priv_pool);
+	rte_mempool_free(env->mpool);
+	rte_mempool_free(env->op_pool);
+	rte_mempool_free(env->sess_pool);
+	rte_mempool_free(env->sess_priv_pool);
 
 	rte_cryptodev_stop(dev_id);
 }
examples/fips_validation/fips_validation.c +1 -2
index 52a7bf952d46..94253eaee8bf 100644
@@ -344,8 +344,7 @@ fips_test_clear(void)
 		fclose(info.fp_rd);
 	if (info.fp_wr)
 		fclose(info.fp_wr);
-	if (info.one_line_text)
-		free(info.one_line_text);
+	free(info.one_line_text);
 	if (info.nb_vec_lines) {
 		uint32_t i;
 
examples/fips_validation/main.c +12 -24
index dc40bffe7d97..e06ae37567fd 100644
@@ -143,12 +143,9 @@ cryptodev_fips_validate_app_int(void)
 error_exit:
 
 	rte_mempool_free(env.mpool);
-	if (env.sess_mpool)
-		rte_mempool_free(env.sess_mpool);
-	if (env.sess_priv_mpool)
-		rte_mempool_free(env.sess_priv_mpool);
-	if (env.op_pool)
-		rte_mempool_free(env.op_pool);
+	rte_mempool_free(env.sess_mpool);
+	rte_mempool_free(env.sess_priv_mpool);
+	rte_mempool_free(env.op_pool);
 
 	return ret;
 }
@@ -523,8 +520,7 @@ prepare_data_mbufs(struct fips_val *val)
 	uint16_t nb_seg;
 	int ret = 0;
 
-	if (env.mbuf)
-		rte_pktmbuf_free(env.mbuf);
+	rte_pktmbuf_free(env.mbuf);
 
 	if (total_len > RTE_MBUF_MAX_NB_SEGS) {
 		RTE_LOG(ERR, USER1, "Data len %u too big\n", total_len);
@@ -598,8 +594,7 @@ prepare_data_mbufs(struct fips_val *val)
 	return 0;
 
 error_exit:
-	if (head)
-		rte_pktmbuf_free(head);
+	rte_pktmbuf_free(head);
 	return ret;
 }
 
@@ -656,8 +651,7 @@ prepare_auth_op(void)
 	if (ret < 0)
 		return ret;
 
-	if (env.digest)
-		rte_free(env.digest);
+	rte_free(env.digest);
 
 	env.digest = rte_zmalloc(NULL, vec.cipher_auth.digest.len,
 			RTE_CACHE_LINE_SIZE);
@@ -705,8 +699,7 @@ prepare_aead_op(void)
 		if (ret < 0)
 			return ret;
 
-		if (env.digest)
-			rte_free(env.digest);
+		rte_free(env.digest);
 		env.digest = rte_zmalloc(NULL, vec.aead.digest.len,
 				RTE_CACHE_LINE_SIZE);
 		if (!env.digest) {
@@ -1430,8 +1423,7 @@ fips_mct_tdes_test(void)
 		}
 	}
 
-	if (val.val)
-		free(val.val);
+	free(val.val);
 
 	return 0;
 }
@@ -1510,8 +1502,7 @@ fips_mct_aes_ecb_test(void)
 		}
 	}
 
-	if (val.val)
-		free(val.val);
+	free(val.val);
 
 	return 0;
 }
@@ -1619,8 +1610,7 @@ fips_mct_aes_test(void)
 			memcpy(vec.iv.val, val.val, AES_BLOCK_SIZE);
 	}
 
-	if (val.val)
-		free(val.val);
+	free(val.val);
 
 	return 0;
 }
@@ -1706,8 +1696,7 @@ fips_mct_sha_test(void)
 
 	rte_free(vec.pt.val);
 
-	if (val.val)
-		free(val.val);
+	free(val.val);
 
 	return 0;
 }
@@ -1851,8 +1840,7 @@ fips_test_one_file(void)
 		rte_free(env.digest);
 		env.digest = NULL;
 	}
-	if (env.mbuf)
-		rte_pktmbuf_free(env.mbuf);
+	rte_pktmbuf_free(env.mbuf);
 
 	return ret;
 }
Signature · 1 line
2.30.2
#5 lore raw

PATCH 5/82 examples/ip_pipeline: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 examples/ip_pipeline/cli.c       | 12 ++++--------
 examples/ip_pipeline/cryptodev.c |  6 ++----
 examples/ip_pipeline/thread.c    |  6 ++----
 3 files changed, 8 insertions(+), 16 deletions(-)
examples/ip_pipeline/cli.c +4 -8
index 0c372675a919..c918f30e06f3 100644
@@ -3773,10 +3773,8 @@ parse_free_sym_crypto_param_data(struct rte_table_action_sym_crypto_params *p)
 
 		switch (xform[i]->type) {
 		case RTE_CRYPTO_SYM_XFORM_CIPHER:
-			if (p->cipher_auth.cipher_iv.val)
-				free(p->cipher_auth.cipher_iv.val);
-			if (p->cipher_auth.cipher_iv_update.val)
-				free(p->cipher_auth.cipher_iv_update.val);
+			free(p->cipher_auth.cipher_iv.val);
+			free(p->cipher_auth.cipher_iv_update.val);
 			break;
 		case RTE_CRYPTO_SYM_XFORM_AUTH:
 			if (p->cipher_auth.auth_iv.val)
@@ -3785,10 +3783,8 @@ parse_free_sym_crypto_param_data(struct rte_table_action_sym_crypto_params *p)
 				free(p->cipher_auth.cipher_iv_update.val);
 			break;
 		case RTE_CRYPTO_SYM_XFORM_AEAD:
-			if (p->aead.iv.val)
-				free(p->aead.iv.val);
-			if (p->aead.aad.val)
-				free(p->aead.aad.val);
+			free(p->aead.iv.val);
+			free(p->aead.aad.val);
 			break;
 		default:
 			continue;
examples/ip_pipeline/cryptodev.c +2 -4
index 9997d974563f..cd0f9c3d4eac 100644
@@ -151,10 +151,8 @@ cryptodev_create(const char *name, struct cryptodev_params *params)
 	return cryptodev;
 
 error_exit:
-	if (cryptodev->mp_create)
-		rte_mempool_free(cryptodev->mp_create);
-	if (cryptodev->mp_init)
-		rte_mempool_free(cryptodev->mp_init);
+	rte_mempool_free(cryptodev->mp_create);
+	rte_mempool_free(cryptodev->mp_init);
 
 	free(cryptodev);
 
examples/ip_pipeline/thread.c +2 -4
index b2e97327052f..82d5f87c384c 100644
@@ -92,11 +92,9 @@ thread_free(void)
 			continue;
 
 		/* MSGQs */
-		if (t->msgq_req)
-			rte_ring_free(t->msgq_req);
+		rte_ring_free(t->msgq_req);
 
-		if (t->msgq_rsp)
-			rte_ring_free(t->msgq_rsp);
+		rte_ring_free(t->msgq_rsp);
 	}
 }
 
Signature · 1 line
2.30.2
#6 lore raw

RE: [PATCH 05/82] examples/ip_pipeline: remove unnecessary NULL checks

Quoted 14 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, January 24, 2022 12:04 AM
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Dumitrescu, Cristian <[email protected]>
Subject: [PATCH 05/82] examples/ip_pipeline: remove unnecessary NULL checks

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

Quoted 7 lines
---
 examples/ip_pipeline/cli.c       | 12 ++++--------
 examples/ip_pipeline/cryptodev.c |  6 ++----
 examples/ip_pipeline/thread.c    |  6 ++----
 3 files changed, 8 insertions(+), 16 deletions(-)

Hi Stephen,

The rte_ring_free() and rte_mempool_free() do not state in their API description that freeing a NULL pointer is harmless. Before pushing these changes, please add the necessary note in the API header files for these functions.

In the absence of the clear note in their API description, the user is forced to check for the NULL pointer. I agree that the implementation of these functions does the right think and exits early when the input pointer is NULL, but there is no guarantee that the implementation is not going to change. Agree?

The stdlib free() and the rte_free() do have the clear API description note that freeing a NULL object is harmless, so removing the NULL check before their call is indeed safe.

This stands for all the patches in this set.

Regards,
Cristian

#7 lore raw

Re: [PATCH 05/82] examples/ip_pipeline: remove unnecessary NULL checks

Quoted 20 lines · Cristian
Quoted 12 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, January 24, 2022 12:04 AM
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Dumitrescu, Cristian <[email protected]>
Subject: [PATCH 05/82] examples/ip_pipeline: remove unnecessary NULL checks

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

Quoted 7 lines
---
 examples/ip_pipeline/cli.c       | 12 ++++--------
 examples/ip_pipeline/cryptodev.c |  6 ++----
 examples/ip_pipeline/thread.c    |  6 ++----
 3 files changed, 8 insertions(+), 16 deletions(-)
Quoted 3 lines

Hi Stephen,

The rte_ring_free() and rte_mempool_free() do not state in their API description that freeing a NULL pointer is harmless. Before pushing these changes, please add the necessary note in the API header files for these functions.

Okay, will fix the documentation then.
The implemeentation has always done the right thing.

Quoted 1 line

In the absence of the clear note in their API description, the user is forced to check for the NULL pointer. I agree that the implementation of these functions does the right think and exits early when the input pointer is NULL, but there is no guarantee that the implementation is not going to change. Agree?

No. I don't agree. All XXX_free() functions should accept NULL and handle it in the same way. Any inconsistency is an obvious source of bugs.

Quoted 2 lines

The stdlib free() and the rte_free() do have the clear API description note that freeing a NULL object is harmless, so removing the NULL check before their call is indeed safe.

Will add first patch to fix the documentation to match the current implementation.

#8 lore raw

PATCH 6/82 examples/pipeline/thread: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 examples/pipeline/thread.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
examples/pipeline/thread.c +2 -4
index bf11e6144b75..5fe7eae00eb6 100644
@@ -89,11 +89,9 @@ thread_free(void)
 			continue;
 
 		/* MSGQs */
-		if (t->msgq_req)
-			rte_ring_free(t->msgq_req);
+		rte_ring_free(t->msgq_req);
 
-		if (t->msgq_rsp)
-			rte_ring_free(t->msgq_rsp);
+		rte_ring_free(t->msgq_rsp);
 	}
 }
 
Signature · 1 line
2.30.2
#9 lore raw

RE: [PATCH 06/82] examples/pipeline/thread: remove unnecessary NULL checks

Quoted 38 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, January 24, 2022 12:04 AM
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Dumitrescu, Cristian <[email protected]>
Subject: [PATCH 06/82] examples/pipeline/thread: remove unnecessary NULL checks

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 examples/pipeline/thread.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
examples/pipeline/thread.c +2 -5
index bf11e6144b75..5fe7eae00eb6 100644
@@ -89,11 +89,9 @@ thread_free(void)
 			continue;
 
 		/* MSGQs */
-		if (t->msgq_req)
-			rte_ring_free(t->msgq_req);
+		rte_ring_free(t->msgq_req);
 
-		if (t->msgq_rsp)
-			rte_ring_free(t->msgq_rsp);
+		rte_ring_free(t->msgq_rsp);
 	}
 }
 
--
Quoted 1 line

2.30.2

Hi Stephen,

The rte_ring_free() and rte_mempool_free() do not state in their API description that freeing a NULL pointer is harmless. Before pushing these changes, please add the necessary note in the API header files for these functions.

In the absence of the clear note in their API description, the user is forced to check for the NULL pointer. I agree that the implementation of these functions does the right think and exits early when the input pointer is NULL, but there is no guarantee that the implementation is not going to change. Agree?

The stdlib free() and the rte_free() do have the clear API description note that freeing a NULL object is harmless, so removing the NULL check before their call is indeed safe.

This stands for all the patches in this set.

Regards,
Cristian

#10 lore raw

PATCH 7/82 examples/l2fwd-cat: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 examples/l2fwd-cat/cat.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
examples/l2fwd-cat/cat.c +1 -2
index 502c6b32780e..77154c8b7e61 100644
@@ -872,8 +872,7 @@ cat_fini(void)
 #if PQOS_VERSION <= 103
 	memset(m_sockets, 0, sizeof(m_sockets));
 #else
-	if (m_sockets != NULL)
-		free(m_sockets);
+	free(m_sockets);
 #endif
 	m_sock_count = 0;
 	memset(m_config, 0, sizeof(m_config));
Signature · 1 line
2.30.2
#11 lore raw

PATCH 8/82 lib/vhost: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/vhost/iotlb.c        | 3 +--
 lib/vhost/vhost_crypto.c | 6 ++----
 lib/vhost/vhost_user.c   | 9 +++------
 3 files changed, 6 insertions(+), 12 deletions(-)
lib/vhost/iotlb.c +1 -2
index 82bdb84526ea..d6b8c0a396b5 100644
@@ -315,8 +315,7 @@ vhost_user_iotlb_init(struct virtio_net *dev, int vq_index)
 
 	/* If already created, free it and recreate */
 	vq->iotlb_pool = rte_mempool_lookup(pool_name);
-	if (vq->iotlb_pool)
-		rte_mempool_free(vq->iotlb_pool);
+	rte_mempool_free(vq->iotlb_pool);
 
 	vq->iotlb_pool = rte_mempool_create(pool_name,
 			IOTLB_CACHE_SIZE, sizeof(struct vhost_iotlb_entry), 0,
lib/vhost/vhost_crypto.c +2 -4
index 926b5c0bd94a..012e0cefdeba 100644
@@ -1498,10 +1498,8 @@ rte_vhost_crypto_create(int vid, uint8_t cryptodev_id,
 	return 0;
 
 error_exit:
-	if (vcrypto->session_map)
-		rte_hash_free(vcrypto->session_map);
-	if (vcrypto->mbuf_pool)
-		rte_mempool_free(vcrypto->mbuf_pool);
+	rte_hash_free(vcrypto->session_map);
+	rte_mempool_free(vcrypto->mbuf_pool);
 
 	rte_free(vcrypto);
 
lib/vhost/vhost_user.c +3 -6
index 5eb1dd681231..23a0e3fb3600 100644
@@ -489,8 +489,7 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
 	}
 
 	if (vq_is_packed(dev)) {
-		if (vq->shadow_used_packed)
-			rte_free(vq->shadow_used_packed);
+		rte_free(vq->shadow_used_packed);
 		vq->shadow_used_packed = rte_malloc_socket(NULL,
 				vq->size *
 				sizeof(struct vring_used_elem_packed),
@@ -502,8 +501,7 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
 		}
 
 	} else {
-		if (vq->shadow_used_split)
-			rte_free(vq->shadow_used_split);
+		rte_free(vq->shadow_used_split);
 
 		vq->shadow_used_split = rte_malloc_socket(NULL,
 				vq->size * sizeof(struct vring_used_elem),
@@ -516,8 +514,7 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
 		}
 	}
 
-	if (vq->batch_copy_elems)
-		rte_free(vq->batch_copy_elems);
+	rte_free(vq->batch_copy_elems);
 	vq->batch_copy_elems = rte_malloc_socket(NULL,
 				vq->size * sizeof(struct batch_copy_elem),
 				RTE_CACHE_LINE_SIZE, vq->numa_node);
Signature · 1 line
2.30.2
#12 lore raw

PATCH 9/82 examples/vhost_blk: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 examples/vhost_blk/vhost_blk.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
examples/vhost_blk/vhost_blk.c +1 -2
index feadacc62ee5..2cab1e6994fe 100644
@@ -849,8 +849,7 @@ static void
 vhost_blk_ctrlr_destroy(struct vhost_blk_ctrlr *ctrlr)
 {
 	if (ctrlr->bdev != NULL) {
-		if (ctrlr->bdev->data != NULL)
-			rte_free(ctrlr->bdev->data);
+		rte_free(ctrlr->bdev->data);
 
 		rte_free(ctrlr->bdev);
 	}
Signature · 1 line
2.30.2
#13 lore raw

PATCH 10/82 app/pdump: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 app/pdump/main.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
app/pdump/main.c +3 -6
index 46f9d25db004..04a38e891119 100644
@@ -502,14 +502,11 @@ cleanup_rings(void)
 	for (i = 0; i < num_tuples; i++) {
 		pt = &pdump_t[i];
 
-		if (pt->device_id)
-			free(pt->device_id);
+		free(pt->device_id);
 
 		/* free the rings */
-		if (pt->rx_ring)
-			rte_ring_free(pt->rx_ring);
-		if (pt->tx_ring)
-			rte_ring_free(pt->tx_ring);
+		rte_ring_free(pt->rx_ring);
+		rte_ring_free(pt->tx_ring);
 	}
 }
 
Signature · 1 line
2.30.2
#14 lore raw

PATCH 11/82 app/test-crypto-perf: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 app/test-crypto-perf/cperf_test_latency.c        | 3 +--
 app/test-crypto-perf/cperf_test_pmd_cyclecount.c | 9 +++------
 app/test-crypto-perf/cperf_test_throughput.c     | 3 +--
 app/test-crypto-perf/cperf_test_vector_parsing.c | 6 ++----
 app/test-crypto-perf/cperf_test_verify.c         | 3 +--
 5 files changed, 8 insertions(+), 16 deletions(-)
app/test-crypto-perf/cperf_test_latency.c +1 -2
index ce49feaba9f3..4c7bc72eb5fd 100644
@@ -49,8 +49,7 @@ cperf_latency_test_free(struct cperf_latency_ctx *ctx)
 			rte_cryptodev_sym_session_free(ctx->sess);
 		}
 
-		if (ctx->pool)
-			rte_mempool_free(ctx->pool);
+		rte_mempool_free(ctx->pool);
 
 		rte_free(ctx->res);
 		rte_free(ctx);
app/test-crypto-perf/cperf_test_pmd_cyclecount.c +3 -6
index 5842f29d43e2..6b4d09e623eb 100644
@@ -79,14 +79,11 @@ cperf_pmd_cyclecount_test_free(struct cperf_pmd_cyclecount_ctx *ctx)
 		}
 	}
 
-	if (ctx->pool)
-		rte_mempool_free(ctx->pool);
+	rte_mempool_free(ctx->pool);
 
-	if (ctx->ops)
-		rte_free(ctx->ops);
+	rte_free(ctx->ops);
 
-	if (ctx->ops_processed)
-		rte_free(ctx->ops_processed);
+	rte_free(ctx->ops_processed);
 
 	rte_free(ctx);
 }
app/test-crypto-perf/cperf_test_throughput.c +1 -2
index 51512af2ad81..51fad5a05505 100644
@@ -57,8 +57,7 @@ cperf_throughput_test_free(struct cperf_throughput_ctx *ctx)
 			rte_cryptodev_sym_session_free(ctx->sess);
 		}
 	}
-	if (ctx->pool)
-		rte_mempool_free(ctx->pool);
+	rte_mempool_free(ctx->pool);
 
 	rte_free(ctx);
 }
app/test-crypto-perf/cperf_test_vector_parsing.c +2 -4
index 1e9dfcfff087..87f3a90055aa 100644
@@ -551,10 +551,8 @@ parse_file(struct cperf_test_vector *vector, struct cperf_options *opts)
 err:
 	if (fp)
 		fclose(fp);
-	if (line)
-		free(line);
-	if (entry)
-		rte_free(entry);
+	free(line);
+	rte_free(entry);
 
 	return -1;
 }
app/test-crypto-perf/cperf_test_verify.c +1 -2
index 496eb0de00f0..c031330afcfe 100644
@@ -42,8 +42,7 @@ cperf_verify_test_free(struct cperf_verify_ctx *ctx)
 			rte_cryptodev_sym_session_free(ctx->sess);
 		}
 
-		if (ctx->pool)
-			rte_mempool_free(ctx->pool);
+		rte_mempool_free(ctx->pool);
 
 		rte_free(ctx);
 	}
Signature · 1 line
2.30.2
Acked-by on v1 11/82
#15 lore raw

RE: [PATCH 11/82] app/test-crypto-perf: remove unnecessary NULL checks

Hi Stephen,

Looks good, thanks.

Quoted 21 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday 24 January 2022 00:04
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Doherty, Declan <[email protected]>; Power, Ciara <[email protected]>
Subject: [PATCH 11/82] app/test-crypto-perf: remove unnecessary NULL checks

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---

app/test-crypto-perf/cperf_test_latency.c        | 3 +--
app/test-crypto-perf/cperf_test_pmd_cyclecount.c | 9 +++------
app/test-crypto-perf/cperf_test_throughput.c     | 3 +--
app/test-crypto-perf/cperf_test_vector_parsing.c | 6 ++----
app/test-crypto-perf/cperf_test_verify.c         | 3 +--
5 files changed, 8 insertions(+), 16 deletions(-)

<snip>

#16 lore raw

PATCH 12/82 app/test-pmd: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 app/test-pmd/cmd_flex_item.c | 3 +--
 app/test-pmd/cmdline.c       | 3 +--
 app/test-pmd/testpmd.c       | 3 +--
 3 files changed, 3 insertions(+), 6 deletions(-)
app/test-pmd/cmd_flex_item.c +1 -2
index 908bcb3f47f8..9050825a81d7 100644
@@ -364,8 +364,7 @@ flex_item_create(portid_t port_id, uint16_t flex_id, const char *filename)
 		       flow_error.message ? flow_error.message : "");
 	}
 out:
-	if (fp)
-		free(fp);
+	free(fp);
 }
 
 #else /* RTE_HAS_JANSSON */
app/test-pmd/cmdline.c +1 -2
index e626b1c7d9ee..298a594e709b 100644
@@ -14696,8 +14696,7 @@ cmd_ddp_info_parsed(
 
 	ret = 0;
 no_print_return:
-	if (proto)
-		free(proto);
+	free(proto);
 #endif
 	if (ret == -ENOTSUP)
 		fprintf(stderr, "Function not supported in PMD\n");
app/test-pmd/testpmd.c +1 -2
index 6c387bde84e5..31efa0fe61e5 100644
@@ -902,8 +902,7 @@ create_extmem(uint32_t nb_mbufs, uint32_t mbuf_sz, struct extmem_param *param,
 
 	return 0;
 fail:
-	if (iovas)
-		free(iovas);
+	free(iovas);
 	if (addr)
 		munmap(addr, mem_sz);
 
Signature · 1 line
2.30.2
#17 lore raw

PATCH 13/82 app/test-regex: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 app/test-regex/main.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)
app/test-regex/main.c +4 -8
index 8e665df73ce0..ab8a3e56e774 100644
@@ -210,8 +210,7 @@ read_file(char *file, char **buf)
 	printf("Error, can't open file %s\n, err = %d", file, res);
 	if (fp)
 		fclose(fp);
-	if (*buf)
-		rte_free(*buf);
+	rte_free(*buf);
 	return -res;
 }
 
@@ -299,8 +298,7 @@ init_port(uint16_t *nb_max_payload, char *rules_file, uint8_t *nb_max_matches,
 	rte_free(rules);
 	return 0;
 error:
-	if (rules)
-		rte_free(rules);
+	rte_free(rules);
 	return res;
 }
 
@@ -367,8 +365,7 @@ regex_create_segmented_mbuf(struct rte_mempool *mbuf_pool, int pkt_len,
 	return mbuf;
 
 fail:
-	if (mbuf)
-		rte_pktmbuf_free(mbuf);
+	rte_pktmbuf_free(mbuf);
 	return NULL;
 }
 
@@ -612,8 +609,7 @@ run_regex(void *args)
 		rte_free(qp->buf);
 		qp->buf = NULL;
 	}
-	if (mbuf_mp)
-		rte_mempool_free(mbuf_mp);
+	rte_mempool_free(mbuf_mp);
 	rte_free(qps);
 	return res;
 }
Signature · 1 line
2.30.2
#18 lore raw

PATCH 14/82 app/test: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 app/test/test_cksum.c                 |  3 +-
 app/test/test_compressdev.c           |  3 +-
 app/test/test_cryptodev.h             |  3 +-
 app/test/test_cryptodev_asym.c        |  3 +-
 app/test/test_cryptodev_blockcipher.c | 12 +++----
 app/test/test_func_reentrancy.c       | 15 +++------
 app/test/test_hash.c                  | 15 +++------
 app/test/test_hash_perf.c             |  7 +----
 app/test/test_link_bonding.c          |  9 ++----
 app/test/test_link_bonding_mode4.c    |  3 +-
 app/test/test_malloc.c                |  5 ++-
 app/test/test_mbuf.c                  | 45 +++++++++------------------
 app/test/test_pcapng.c                |  3 +-
 app/test/test_reorder.c               | 15 +++------
 app/test/virtual_pmd.c                |  3 +-
 15 files changed, 47 insertions(+), 97 deletions(-)
app/test/test_cksum.c +1 -2
index cd983d7c01ce..6c15de9a9312 100644
@@ -218,8 +218,7 @@ test_l4_cksum(struct rte_mempool *pktmbuf_pool, const char *pktdata, size_t len)
 	return 0;
 
 fail:
-	if (m)
-		rte_pktmbuf_free(m);
+	rte_pktmbuf_free(m);
 
 	return -1;
 }
app/test/test_compressdev.c +1 -2
index 57c566aa9229..fbecaf9aaad4 100644
@@ -2144,8 +2144,7 @@ test_deflate_comp_decomp(const struct interim_data_params *int_data,
 
 	if (stream != NULL)
 		rte_compressdev_stream_free(0, stream);
-	if (all_decomp_data != NULL)
-		rte_free(all_decomp_data);
+	rte_free(all_decomp_data);
 
 	/* Free compress private xforms */
 	for (i = 0; i < test_priv_data.num_priv_xforms; i++) {
app/test/test_cryptodev.h +1 -2
index 70f23a3f67d0..29a7d4db2b10 100644
@@ -230,8 +230,7 @@ create_segmented_mbuf(struct rte_mempool *mbuf_pool, int pkt_len,
 	return mbuf;
 
 fail:
-	if (mbuf)
-		rte_pktmbuf_free(mbuf);
+	rte_pktmbuf_free(mbuf);
 	return NULL;
 }
 
app/test/test_cryptodev_asym.c +1 -2
index 68f4d8e7a6f9..8c68a12d74b2 100644
@@ -518,8 +518,7 @@ test_cryptodev_asym_op(struct crypto_testsuite_params_asym *ts_params,
 		if (op != NULL)
 			rte_crypto_op_free(op);
 
-		if (result != NULL)
-			rte_free(result);
+		rte_free(result);
 
 	return status;
 }
app/test/test_cryptodev_blockcipher.c +4 -8
index 5688a45377b2..127e2a53d379 100644
@@ -805,20 +805,16 @@ test_blockcipher_one_case(const struct blockcipher_test_case *t,
 			rte_cryptodev_sym_session_clear(dev_id, sess);
 			rte_cryptodev_sym_session_free(sess);
 		}
-		if (cipher_xform)
-			rte_free(cipher_xform);
-		if (auth_xform)
-			rte_free(auth_xform);
+		rte_free(cipher_xform);
+		rte_free(auth_xform);
 	}
 
 	if (op)
 		rte_crypto_op_free(op);
 
-	if (obuf)
-		rte_pktmbuf_free(obuf);
+	rte_pktmbuf_free(obuf);
 
-	if (ibuf)
-		rte_pktmbuf_free(ibuf);
+	rte_pktmbuf_free(ibuf);
 
 	return status;
 }
app/test/test_func_reentrancy.c +5 -10
index ce40c3ce9631..64f27e20370f 100644
@@ -89,15 +89,13 @@ ring_clean(unsigned int lcore_id)
 	int i;
 
 	rp = rte_ring_lookup("fr_test_once");
-	if (rp != NULL)
-		rte_ring_free(rp);
+	rte_ring_free(rp);
 
 	for (i = 0; i < MAX_ITER_MULTI; i++) {
 		snprintf(ring_name, sizeof(ring_name),
 				"fr_test_%d_%d", lcore_id, i);
 		rp = rte_ring_lookup(ring_name);
-		if (rp != NULL)
-			rte_ring_free(rp);
+		rte_ring_free(rp);
 	}
 }
 
@@ -152,15 +150,13 @@ mempool_clean(unsigned int lcore_id)
 	int i;
 
 	mp = rte_mempool_lookup("fr_test_once");
-	if (mp != NULL)
-		rte_mempool_free(mp);
+	rte_mempool_free(mp);
 
 	for (i = 0; i < MAX_ITER_MULTI; i++) {
 		snprintf(mempool_name, sizeof(mempool_name), "fr_test_%d_%d",
 			 lcore_id, i);
 		mp = rte_mempool_lookup(mempool_name);
-		if (mp != NULL)
-			rte_mempool_free(mp);
+		rte_mempool_free(mp);
 	}
 }
 
@@ -215,8 +211,7 @@ hash_clean(unsigned lcore_id)
 	int i;
 
 	handle = rte_hash_find_existing("fr_test_once");
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	for (i = 0; i < MAX_ITER_MULTI; i++) {
 		snprintf(hash_name, sizeof(hash_name), "fr_test_%d_%d",  lcore_id, i);
app/test/test_hash.c +5 -10
index b99e8de1db71..d522cb7f8cbf 100644
@@ -1654,8 +1654,7 @@ test_hash_add_delete_jhash2(void)
 	ret = 0;
 
 fail_jhash2:
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	return ret;
 }
@@ -1689,8 +1688,7 @@ test_hash_add_delete_2_jhash2(void)
 	ret = 0;
 
 fail_2_jhash2:
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	return ret;
 }
@@ -1754,8 +1752,7 @@ test_hash_add_delete_jhash_1word(void)
 	ret = 0;
 
 fail_jhash_1word:
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	return ret;
 }
@@ -1789,8 +1786,7 @@ test_hash_add_delete_jhash_2word(void)
 	ret = 0;
 
 fail_jhash_2word:
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	return ret;
 }
@@ -1824,8 +1820,7 @@ test_hash_add_delete_jhash_3word(void)
 	ret = 0;
 
 fail_jhash_3word:
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	return ret;
 }
app/test/test_hash_perf.c +1 -6
index 76cdac5d5320..287f486316f1 100644
@@ -106,12 +106,7 @@ create_table(unsigned int with_data, unsigned int table_index,
 	ut_params.key_len = hashtest_key_lens[table_index];
 	ut_params.socket_id = rte_socket_id();
 	h[table_index] = rte_hash_find_existing(name);
-	if (h[table_index] != NULL)
-		/*
-		 * If table was already created, free it to create it again,
-		 * so we force it is empty
-		 */
-		rte_hash_free(h[table_index]);
+	rte_hash_free(h[table_index]);
 	h[table_index] = rte_hash_create(&ut_params);
 	if (h[table_index] == NULL) {
 		printf("Error creating table\n");
app/test/test_link_bonding.c +3 -6
index dc6fc46b9c93..82a9b8e01a82 100644
@@ -1639,8 +1639,7 @@ test_roundrobin_rx_burst_on_single_slave(void)
 
 	/* free mbufs */
 	for (i = 0; i < MAX_PKT_BURST; i++) {
-		if (rx_pkt_burst[i] != NULL)
-			rte_pktmbuf_free(rx_pkt_burst[i]);
+		rte_pktmbuf_free(rx_pkt_burst[i]);
 	}
 
 
@@ -1722,8 +1721,7 @@ test_roundrobin_rx_burst_on_multiple_slaves(void)
 
 	/* free mbufs */
 	for (i = 0; i < MAX_PKT_BURST; i++) {
-		if (rx_pkt_burst[i] != NULL)
-			rte_pktmbuf_free(rx_pkt_burst[i]);
+		rte_pktmbuf_free(rx_pkt_burst[i]);
 	}
 
 	/* Clean up and remove slaves from bonded device */
@@ -2010,8 +2008,7 @@ test_roundrobin_verify_slave_link_status_change_behaviour(void)
 
 	/* free mbufs */
 	for (i = 0; i < MAX_PKT_BURST; i++) {
-		if (rx_pkt_burst[i] != NULL)
-			rte_pktmbuf_free(rx_pkt_burst[i]);
+		rte_pktmbuf_free(rx_pkt_burst[i]);
 	}
 
 	/* Clean up and remove slaves from bonded device */
app/test/test_link_bonding_mode4.c +1 -2
index 351129de2f9b..d9b9c323c7f8 100644
@@ -194,8 +194,7 @@ free_pkts(struct rte_mbuf **pkts, uint16_t count)
 	uint16_t i;
 
 	for (i = 0; i < count; i++) {
-		if (pkts[i] != NULL)
-			rte_pktmbuf_free(pkts[i]);
+		rte_pktmbuf_free(pkts[i]);
 	}
 }
 
app/test/test_malloc.c +2 -3
index 6d9249f831be..d424d7808af3 100644
@@ -812,7 +812,7 @@ test_zero_aligned_alloc(void)
 
 err_return:
 	/*clean up */
-	if (p1) rte_free(p1);
+	rte_free(p1);
 	return -1;
 }
 
@@ -865,8 +865,7 @@ test_malloc_bad_params(void)
 
 err_return:
 	/* clean up pointer */
-	if (bad_ptr)
-		rte_free(bad_ptr);
+	rte_free(bad_ptr);
 	return -1;
 }
 
app/test/test_mbuf.c +15 -30

99 lines not on this page · raw message

app/test/test_pcapng.c +1 -2
index 34c5e1234695..320dacea3498 100644
@@ -240,8 +240,7 @@ test_validate(void)
 static void
 test_cleanup(void)
 {
-	if (mp)
-		rte_mempool_free(mp);
+	rte_mempool_free(mp);
 
 	if (pcapng)
 		rte_pcapng_close(pcapng);
app/test/test_reorder.c +5 -10
index 1c4226da6501..962c31953f91 100644
@@ -208,8 +208,7 @@ test_reorder_insert(void)
 exit:
 	rte_reorder_free(b);
 	for (i = 0; i < num_bufs; i++) {
-		if (bufs[i] != NULL)
-			rte_pktmbuf_free(bufs[i]);
+		rte_pktmbuf_free(bufs[i]);
 	}
 	return ret;
 }
@@ -268,8 +267,7 @@ test_reorder_drain(void)
 		ret = -1;
 		goto exit;
 	}
-	if (robufs[0] != NULL)
-		rte_pktmbuf_free(robufs[0]);
+	rte_pktmbuf_free(robufs[0]);
 
 	/* Insert more packets
 	 * RB[] = {NULL, NULL, NULL, NULL}
@@ -303,8 +301,7 @@ test_reorder_drain(void)
 		goto exit;
 	}
 	for (i = 0; i < 3; i++) {
-		if (robufs[i] != NULL)
-			rte_pktmbuf_free(robufs[i]);
+		rte_pktmbuf_free(robufs[i]);
 	}
 
 	/*
@@ -322,10 +319,8 @@ test_reorder_drain(void)
 exit:
 	rte_reorder_free(b);
 	for (i = 0; i < num_bufs; i++) {
-		if (bufs[i] != NULL)
-			rte_pktmbuf_free(bufs[i]);
-		if (robufs[i] != NULL)
-			rte_pktmbuf_free(robufs[i]);
+		rte_pktmbuf_free(bufs[i]);
+		rte_pktmbuf_free(robufs[i]);
 	}
 	return ret;
 }
app/test/virtual_pmd.c +1 -2
index 3d2793852049..cd4611ab48df 100644
@@ -397,8 +397,7 @@ virtual_ethdev_tx_burst_fail(void *queue, struct rte_mbuf **bufs,
 		/* free packets in burst */
 		for (i = 0; i < successfully_txd; i++) {
 			/* free packets in burst */
-			if (bufs[i] != NULL)
-				rte_pktmbuf_free(bufs[i]);
+			rte_pktmbuf_free(bufs[i]);
 
 			bufs[i] = NULL;
 		}
Signature · 1 line
2.30.2
#19 lore raw

PATCH 15/82 baseband/acc100 remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/baseband/acc100/rte_acc100_pmd.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/baseband/acc100/rte_acc100_pmd.c +1 -2
index 1c6080f2f895..f86474f7e099 100644
@@ -4402,8 +4402,7 @@ poweron_cleanup(struct rte_bbdev *bbdev, struct acc100_device *d,
 	}
 	printf("Number of 5GUL engines %d\n", numEngines);
 
-	if (d->sw_rings_base != NULL)
-		rte_free(d->sw_rings_base);
+	rte_free(d->sw_rings_base);
 	usleep(ACC100_LONG_WAIT);
 }
 
Signature · 1 line
2.30.2
#20 lore raw

PATCH 16/82 baseband/la12xx remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/baseband/la12xx/bbdev_la12xx.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/baseband/la12xx/bbdev_la12xx.c +1 -2
index 4b05b5d3f2a6..4d1bd16751fe 100644
@@ -975,8 +975,7 @@ parse_bbdev_la12xx_params(struct bbdev_la12xx_params *params,
 	}
 
 exit:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
+	rte_kvargs_free(kvlist);
 	return ret;
 }
 
Signature · 1 line
2.30.2
#22 lore raw

PATCH 17/82 baseband/null remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/baseband/null/bbdev_null.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/baseband/null/bbdev_null.c +1 -2
index 08cff582b99d..248e12987f03 100644
@@ -251,8 +251,7 @@ parse_bbdev_null_params(struct bbdev_null_params *params,
 	}
 
 exit:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
+	rte_kvargs_free(kvlist);
 	return ret;
 }
 
Signature · 1 line
2.30.2
#23 lore raw

PATCH 18/82 baseband/turbo_sw remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/baseband/turbo_sw/bbdev_turbo_software.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/baseband/turbo_sw/bbdev_turbo_software.c +1 -2
index c6b1eb8679cb..af7bc416f92e 100644
@@ -1918,8 +1918,7 @@ parse_turbo_sw_params(struct turbo_sw_params *params, const char *input_args)
 	}
 
 exit:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
+	rte_kvargs_free(kvlist);
 	return ret;
 }
 
Signature · 1 line
2.30.2
#24 lore raw

PATCH 19/82 bus/fslmc: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/bus/fslmc/fslmc_bus.c            | 6 ++----
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 6 ++----
 2 files changed, 4 insertions(+), 8 deletions(-)
drivers/bus/fslmc/fslmc_bus.c +2 -4
index 53fd75539e98..30d019516b91 100644
@@ -223,13 +223,11 @@ scan_one_fslmc_device(char *dev_name)
 	insert_in_device_list(dev);
 
 	/* Don't need the duplicated device filesystem entry anymore */
-	if (dup_dev_name)
-		free(dup_dev_name);
+	free(dup_dev_name);
 
 	return 0;
 cleanup:
-	if (dup_dev_name)
-		free(dup_dev_name);
+	free(dup_dev_name);
 	if (dev) {
 		rte_intr_instance_free(dev->intr_handle);
 		free(dev);
drivers/bus/fslmc/portal/dpaa2_hw_dpio.c +2 -4
index 52605ea2c32c..943fadee4816 100644
@@ -149,8 +149,7 @@ dpaa2_affine_dpio_intr_to_respective_core(int32_t dpio_id, int cpu_id)
 	if (!token) {
 		DPAA2_BUS_WARN("Failed to get interrupt id for dpio.%d",
 			       dpio_id);
-		if (temp)
-			free(temp);
+		free(temp);
 		fclose(file);
 		return;
 	}
@@ -574,8 +573,7 @@ dpaa2_free_dq_storage(struct queue_storage_info_t *q_storage)
 	int i = 0;
 
 	for (i = 0; i < NUM_DQS_PER_QUEUE; i++) {
-		if (q_storage->dq_storage[i])
-			rte_free(q_storage->dq_storage[i]);
+		rte_free(q_storage->dq_storage[i]);
 	}
 }
 
Signature · 1 line
2.30.2
#26 lore raw

PATCH 20/82 bus/ifpga: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/bus/ifpga/ifpga_bus.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)
drivers/bus/ifpga/ifpga_bus.c +4 -8
index c5c8bbd57219..e005f2cb70b3 100644
@@ -191,10 +191,8 @@ ifpga_scan_one(struct rte_rawdev *rawdev,
 	return afu_dev;
 
 end:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
-	if (path)
-		free(path);
+	rte_kvargs_free(kvlist);
+	free(path);
 	if (afu_dev) {
 		rte_intr_instance_free(afu_dev->intr_handle);
 		free(afu_dev);
@@ -254,10 +252,8 @@ ifpga_scan(void)
 	}
 
 end:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
-	if (name)
-		free(name);
+	rte_kvargs_free(kvlist);
+	free(name);
 
 	return 0;
 }
Signature · 1 line
2.30.2
#27 lore raw

PATCH 21/82 bus/pci: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/bus/pci/pci_params.c         | 3 +--
 drivers/bus/pci/windows/pci.c        | 3 +--
 drivers/bus/pci/windows/pci_netuio.c | 3 +--
 3 files changed, 3 insertions(+), 6 deletions(-)
drivers/bus/pci/pci_params.c +1 -2
index 60b424b8297e..61a868707f16 100644
@@ -117,8 +117,7 @@ rte_pci_devargs_parse(struct rte_devargs *da)
 	rte_pci_device_name(&addr, da->name, sizeof(da->name));
 
 out:
-	if (kvargs != NULL)
-		rte_kvargs_free(kvargs);
+	rte_kvargs_free(kvargs);
 	if (ret != 0)
 		rte_errno = -ret;
 	return ret;
drivers/bus/pci/windows/pci.c +1 -2
index 39ba31be7d38..7bf091158ba2 100644
@@ -418,8 +418,7 @@ pci_scan_one(HDEVINFO dev_info, PSP_DEVINFO_DATA device_info_data)
 
 	return 0;
 end:
-	if (dev)
-		free(dev);
+	free(dev);
 	return ret;
 }
 
drivers/bus/pci/windows/pci_netuio.c +1 -2
index a0b175a8fca0..5460399eea5f 100644
@@ -180,8 +180,7 @@ get_netuio_device_info(HDEVINFO dev_info, PSP_DEVINFO_DATA dev_info_data,
 			CloseHandle(netuio);
 	}
 
-	if (dev_ifx_detail)
-		free(dev_ifx_detail);
+	free(dev_ifx_detail);
 
 	if (di_set != INVALID_HANDLE_VALUE)
 		SetupDiDestroyDeviceInfoList(di_set);
Signature · 1 line
2.30.2
#28 lore raw

PATCH 22/82 common/cpt: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/common/cpt/cpt_ucode_asym.h | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/common/cpt/cpt_ucode_asym.h +2 -4
index f0b5dddd8cdf..f5d91f2583bd 100644
@@ -192,13 +192,11 @@ cpt_free_asym_session_parameters(struct cpt_asym_sess_misc *sess)
 	switch (sess->xfrm_type) {
 	case RTE_CRYPTO_ASYM_XFORM_RSA:
 		rsa = &sess->rsa_ctx;
-		if (rsa->n.data)
-			rte_free(rsa->n.data);
+		rte_free(rsa->n.data);
 		break;
 	case RTE_CRYPTO_ASYM_XFORM_MODEX:
 		mod = &sess->mod_ctx;
-		if (mod->modulus.data)
-			rte_free(mod->modulus.data);
+		rte_free(mod->modulus.data);
 		break;
 	case RTE_CRYPTO_ASYM_XFORM_ECDSA:
 		/* Fall through */
Signature · 1 line
2.30.2
#29 lore raw

PATCH 23/82 common/dpaax: simplify kernel compat macros

In reply to Stephen Hemminger

The compat wrapper had unnecessary NULL check and also the emulation of kzalloc() should just use equivalent rte_zmalloc().

---
 drivers/common/dpaax/compat.h | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)
drivers/common/dpaax/compat.h +2 -9
index 7166f8cceb41..cbabc1588b21 100644
@@ -339,16 +339,9 @@ static inline void copy_bytes(void *dest, const void *src, size_t sz)
 
 /* Allocator stuff */
 #define kmalloc(sz, t)	rte_malloc(NULL, sz, 0)
+#define kzalloc(sz, t)  rte_zmalloc(NULL, sz, 0)
 #define vmalloc(sz)	rte_malloc(NULL, sz, 0)
-#define kfree(p)	{ if (p) rte_free(p); }
-static inline void *kzalloc(size_t sz, gfp_t __foo __rte_unused)
-{
-	void *ptr = rte_malloc(NULL, sz, 0);
-
-	if (ptr)
-		memset(ptr, 0, sz);
-	return ptr;
-}
+#define kfree(p)	rte_free(p)
 
 static inline unsigned long get_zeroed_page(gfp_t __foo __rte_unused)
 {
Signature · 1 line
2.30.2
#31 lore raw

PATCH 24/82 common/mlx5: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/common/mlx5/mlx5_common_mr.c  | 3 +--
 drivers/common/mlx5/mlx5_common_pci.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)
drivers/common/mlx5/mlx5_common_mr.c +1 -2
index 1537b5d42879..07f76a10655f 100644
@@ -516,8 +516,7 @@ mlx5_mr_free(struct mlx5_mr *mr, mlx5_dereg_mr_t dereg_mr_cb)
 		return;
 	DRV_LOG(DEBUG, "freeing MR(%p):", (void *)mr);
 	dereg_mr_cb(&mr->pmd_mr);
-	if (mr->ms_bmp != NULL)
-		rte_bitmap_free(mr->ms_bmp);
+	rte_bitmap_free(mr->ms_bmp);
 	mlx5_free(mr);
 }
 
drivers/common/mlx5/mlx5_common_pci.c +1 -2
index 8b38091d8741..458630351cd1 100644
@@ -97,8 +97,7 @@ pci_ids_table_update(const struct rte_pci_id *driver_id_table)
 	updated_table[i].vendor_id = 0;
 	mlx5_common_pci_driver.id_table = updated_table;
 	mlx5_pci_id_table = updated_table;
-	if (old_table)
-		free(old_table);
+	free(old_table);
 	return 0;
 }
 
Signature · 1 line
2.30.2
#32 lore raw

PATCH 25/82 common/qat: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/common/qat/qat_qp.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
drivers/common/qat/qat_qp.c +3 -6
index cde421eb7716..57ac8fefca3d 100644
@@ -175,11 +175,9 @@ qat_qp_setup(struct qat_pci_device *qat_dev,
 
 create_err:
 	if (qp) {
-		if (qp->op_cookie_pool)
-			rte_mempool_free(qp->op_cookie_pool);
+		rte_mempool_free(qp->op_cookie_pool);
 
-		if (qp->op_cookies)
-			rte_free(qp->op_cookies);
+		rte_free(qp->op_cookies);
 
 		rte_free(qp);
 	}
@@ -329,8 +327,7 @@ qat_qp_release(enum qat_device_gen qat_dev_gen, struct qat_qp **qp_addr)
 	for (i = 0; i < qp->nb_descriptors; i++)
 		rte_mempool_put(qp->op_cookie_pool, qp->op_cookies[i]);
 
-	if (qp->op_cookie_pool)
-		rte_mempool_free(qp->op_cookie_pool);
+	rte_mempool_free(qp->op_cookie_pool);
 
 	rte_free(qp->op_cookies);
 	rte_free(qp);
Signature · 1 line
2.30.2
#33 lore raw

PATCH 26/82 compress/mlx5: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/compress/mlx5/mlx5_compress.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/compress/mlx5/mlx5_compress.c +1 -2
index 82b871bd860a..b12951da8b51 100644
@@ -146,8 +146,7 @@ mlx5_compress_qp_release(struct rte_compressdev *dev, uint16_t qp_id)
 		void *opaq = qp->opaque_mr.addr;
 
 		mlx5_common_verbs_dereg_mr(&qp->opaque_mr);
-		if (opaq != NULL)
-			rte_free(opaq);
+		rte_free(opaq);
 	}
 	mlx5_mr_btree_free(&qp->mr_ctrl.cache_bh);
 	rte_free(qp);
Signature · 1 line
2.30.2
#34 lore raw

PATCH 27/82 compress/octeontx: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/compress/octeontx/otx_zip_pmd.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
drivers/compress/octeontx/otx_zip_pmd.c +3 -6
index dd62285b863e..26cdce60a859 100644
@@ -337,8 +337,7 @@ zip_pmd_qp_release(struct rte_compressdev *dev, uint16_t qp_id)
 	if (qp != NULL) {
 		zipvf_q_term(qp);
 
-		if (qp->processed_pkts)
-			rte_ring_free(qp->processed_pkts);
+		rte_ring_free(qp->processed_pkts);
 
 		rte_free(qp);
 		dev->data->queue_pairs[qp_id] = NULL;
@@ -423,10 +422,8 @@ zip_pmd_qp_setup(struct rte_compressdev *dev, uint16_t qp_id,
 	return 0;
 
 qp_setup_cleanup:
-	if (qp->processed_pkts)
-		rte_ring_free(qp->processed_pkts);
-	if (qp)
-		rte_free(qp);
+	rte_ring_free(qp->processed_pkts);
+	rte_free(qp);
 	return -1;
 }
 
Signature · 1 line
2.30.2
#35 lore raw

PATCH 28/82 crypto/armv8: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/armv8/rte_armv8_pmd_ops.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/crypto/armv8/rte_armv8_pmd_ops.c +1 -2
index 1b2749fe62c6..c07ac0489e57 100644
@@ -251,8 +251,7 @@ armv8_crypto_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
 	return 0;
 
 qp_setup_cleanup:
-	if (qp)
-		rte_free(qp);
+	rte_free(qp);
 
 	return -1;
 }
Signature · 1 line
2.30.2
Acked-by on v1 28/82
#36 lore raw

RE: [PATCH 28/82] crypto/armv8: remove unnecessary NULL checks

Quoted 8 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, January 24, 2022 8:04 AM
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Ruifeng Wang <[email protected]>
Subject: [PATCH 28/82] crypto/armv8: remove unnecessary NULL checks

Quoted 8 lines

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/armv8/rte_armv8_pmd_ops.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Thanks.

#37 lore raw

PATCH 29/82 crypto/ccp: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/ccp/ccp_dev.c     | 3 +--
 drivers/crypto/ccp/ccp_pmd_ops.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/ccp/ccp_dev.c +1 -2
index 0eb1b0328ef0..424ead82c3aa 100644
@@ -673,8 +673,7 @@ ccp_probe_device(int ccp_type, struct rte_pci_device *pci_dev)
 	CCP_LOG_ERR("CCP Device probe failed");
 	if (uio_fd >= 0)
 		close(uio_fd);
-	if (ccp_dev)
-		rte_free(ccp_dev);
+	rte_free(ccp_dev);
 	return -1;
 }
 
drivers/crypto/ccp/ccp_pmd_ops.c +1 -2
index 0d615d311c9b..1b600e81ad5c 100644
@@ -744,8 +744,7 @@ ccp_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
 
 qp_setup_cleanup:
 	dev->data->queue_pairs[qp_id] = NULL;
-	if (qp)
-		rte_free(qp);
+	rte_free(qp);
 	return -1;
 }
 
Signature · 1 line
2.30.2
#38 lore raw

PATCH 30/82 crypto/cnxk: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/cnxk/cnxk_ae.h | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/cnxk/cnxk_ae.h +2 -4
index 6222171fe603..01ccfcd33432 100644
@@ -196,13 +196,11 @@ cnxk_ae_free_session_parameters(struct cnxk_ae_sess *sess)
 	switch (sess->xfrm_type) {
 	case RTE_CRYPTO_ASYM_XFORM_RSA:
 		rsa = &sess->rsa_ctx;
-		if (rsa->n.data)
-			rte_free(rsa->n.data);
+		rte_free(rsa->n.data);
 		break;
 	case RTE_CRYPTO_ASYM_XFORM_MODEX:
 		mod = &sess->mod_ctx;
-		if (mod->modulus.data)
-			rte_free(mod->modulus.data);
+		rte_free(mod->modulus.data);
 		break;
 	case RTE_CRYPTO_ASYM_XFORM_ECDSA:
 		/* Fall through */
Signature · 1 line
2.30.2
#39 lore raw

PATCH 31/82 crypto/ipsec_mb: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/ipsec_mb/ipsec_mb_ops.c +2 -4
index 189262c4ad52..f808da9edf89 100644
@@ -102,8 +102,7 @@ ipsec_mb_qp_release(struct rte_cryptodev *dev, uint16_t qp_id)
 
 	if (qp != NULL && rte_eal_process_type() == RTE_PROC_PRIMARY) {
 		r = rte_ring_lookup(qp->name);
-		if (r)
-			rte_ring_free(r);
+		rte_ring_free(r);
 
 #if IMB_VERSION(1, 1, 0) > IMB_VERSION_NUM
 		if (qp->mb_mgr)
@@ -291,8 +290,7 @@ ipsec_mb_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
 	if (qp->mb_mgr_mz)
 		rte_memzone_free(qp->mb_mgr_mz);
 #endif
-	if (qp)
-		rte_free(qp);
+	rte_free(qp);
 	return ret;
 }
 
Signature · 1 line
2.30.2
#40 lore raw

PATCH 32/82 crypto/mvsam: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/mvsam/rte_mrvl_pmd_ops.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/mvsam/rte_mrvl_pmd_ops.c +2 -4
index 3064b1f136fe..f828dc9db5f6 100644
@@ -774,10 +774,8 @@ mrvl_crypto_pmd_sym_session_configure(__rte_unused struct rte_cryptodev *dev,
 	}
 
 	/* free the keys memory allocated for session creation */
-	if (mrvl_sess->sam_sess_params.cipher_key != NULL)
-		free(mrvl_sess->sam_sess_params.cipher_key);
-	if (mrvl_sess->sam_sess_params.auth_key != NULL)
-		free(mrvl_sess->sam_sess_params.auth_key);
+	free(mrvl_sess->sam_sess_params.cipher_key);
+	free(mrvl_sess->sam_sess_params.auth_key);
 
 	return 0;
 }
Signature · 1 line
2.30.2
Reviewed-by on v1 32/82
#41 lore raw

RE: [EXT] [PATCH 32/82] crypto/mvsam: remove unnecessary NULL checks

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, 24 January 2022 02:04
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Michael Shamis <[email protected]>; Liron Himi <[email protected]>
Subject: [EXT] [PATCH 32/82] crypto/mvsam: remove unnecessary NULL checks

External Email

----------------------------------------------------------------------
Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/mvsam/rte_mrvl_pmd_ops.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/mvsam/rte_mrvl_pmd_ops.c +2 -4
index 3064b1f136fe..f828dc9db5f6 100644
@@ -774,10 +774,8 @@ mrvl_crypto_pmd_sym_session_configure(__rte_unused struct rte_cryptodev *dev,
 	}
 
 	/* free the keys memory allocated for session creation */
-	if (mrvl_sess->sam_sess_params.cipher_key != NULL)
-		free(mrvl_sess->sam_sess_params.cipher_key);
-	if (mrvl_sess->sam_sess_params.auth_key != NULL)
-		free(mrvl_sess->sam_sess_params.auth_key);
+	free(mrvl_sess->sam_sess_params.cipher_key);
+	free(mrvl_sess->sam_sess_params.auth_key);
 
 	return 0;
 }

--
2.30.2

#42 lore raw

PATCH 33/82 crypto/null: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/null/null_crypto_pmd_ops.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/null/null_crypto_pmd_ops.c +2 -4
index a8b5a06e7f4e..90a675dfffe0 100644
@@ -135,8 +135,7 @@ null_crypto_pmd_qp_release(struct rte_cryptodev *dev, uint16_t qp_id)
 	if (dev->data->queue_pairs[qp_id] != NULL) {
 		struct null_crypto_qp *qp = dev->data->queue_pairs[qp_id];
 
-		if (qp->processed_pkts)
-			rte_ring_free(qp->processed_pkts);
+		rte_ring_free(qp->processed_pkts);
 
 		rte_free(dev->data->queue_pairs[qp_id]);
 		dev->data->queue_pairs[qp_id] = NULL;
@@ -241,8 +240,7 @@ null_crypto_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
 	return 0;
 
 qp_setup_cleanup:
-	if (qp)
-		rte_free(qp);
+	rte_free(qp);
 
 	return -1;
 }
Signature · 1 line
2.30.2
#43 lore raw

PATCH 34/82 crypto/octeontx: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/octeontx/otx_cryptodev_ops.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/crypto/octeontx/otx_cryptodev_ops.c +1 -2
index f7ca8a8a8e90..f1aae481c3c6 100644
@@ -335,8 +335,7 @@ sym_session_clear(int driver_id, struct rte_cryptodev_sym_session *sess)
 	misc = priv;
 	ctx = SESS_PRIV(misc);
 
-	if (ctx->auth_key != NULL)
-		rte_free(ctx->auth_key);
+	rte_free(ctx->auth_key);
 
 	memset(priv, 0, cpt_get_session_size());
 
Signature · 1 line
2.30.2
#44 lore raw

PATCH 35/82 crypto/openssl: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/openssl/rte_openssl_pmd_ops.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/openssl/rte_openssl_pmd_ops.c +2 -4
index 52715f86f84a..b1c0b14fefd2 100644
@@ -659,8 +659,7 @@ openssl_pmd_qp_release(struct rte_cryptodev *dev, uint16_t qp_id)
 	if (dev->data->queue_pairs[qp_id] != NULL) {
 		struct openssl_qp *qp = dev->data->queue_pairs[qp_id];
 
-		if (qp->processed_ops)
-			rte_ring_free(qp->processed_ops);
+		rte_ring_free(qp->processed_ops);
 
 		rte_free(dev->data->queue_pairs[qp_id]);
 		dev->data->queue_pairs[qp_id] = NULL;
@@ -748,8 +747,7 @@ openssl_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
 	return 0;
 
 qp_setup_cleanup:
-	if (qp)
-		rte_free(qp);
+	rte_free(qp);
 
 	return -1;
 }
Signature · 1 line
2.30.2
#45 lore raw

PATCH 36/82 crypto/scheduler: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/scheduler/scheduler_pmd_ops.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/scheduler/scheduler_pmd_ops.c +2 -4
index f61640c9d646..f3a1bd626c6f 100644
@@ -371,10 +371,8 @@ scheduler_pmd_qp_release(struct rte_cryptodev *dev, uint16_t qp_id)
 	if (!qp_ctx)
 		return 0;
 
-	if (qp_ctx->order_ring)
-		rte_ring_free(qp_ctx->order_ring);
-	if (qp_ctx->private_qp_ctx)
-		rte_free(qp_ctx->private_qp_ctx);
+	rte_ring_free(qp_ctx->order_ring);
+	rte_free(qp_ctx->private_qp_ctx);
 
 	rte_free(qp_ctx);
 	dev->data->queue_pairs[qp_id] = NULL;
Signature · 1 line
2.30.2
#46 lore raw

PATCH 37/82 crypto/virtio: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/virtio/virtqueue.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/virtio/virtqueue.c +2 -4
index fd8be581c996..3e2db1ebd250 100644
@@ -32,10 +32,8 @@ virtqueue_detatch_unused(struct virtqueue *vq)
 		for (idx = 0; idx < vq->vq_nentries; idx++) {
 			cop = vq->vq_descx[idx].crypto_op;
 			if (cop) {
-				if (cop->sym->m_src)
-					rte_pktmbuf_free(cop->sym->m_src);
-				if (cop->sym->m_dst)
-					rte_pktmbuf_free(cop->sym->m_dst);
+				rte_pktmbuf_free(cop->sym->m_src);
+				rte_pktmbuf_free(cop->sym->m_dst);
 				rte_crypto_op_free(cop);
 				vq->vq_descx[idx].crypto_op = NULL;
 			}
Signature · 1 line
2.30.2
#47 lore raw

PATCH 38/82 event/sw: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/event/sw/sw_evdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/event/sw/sw_evdev.c +1 -2
index 6ae613e0f2e7..ba82a80385b6 100644
@@ -526,8 +526,7 @@ sw_dev_configure(const struct rte_eventdev *dev)
 	 * IQ chunk references were cleaned out of the QIDs in sw_stop(), and
 	 * will be reinitialized in sw_start().
 	 */
-	if (sw->chunks)
-		rte_free(sw->chunks);
+	rte_free(sw->chunks);
 
 	sw->chunks = rte_malloc_socket(NULL,
 				       sizeof(struct sw_queue_chunk) *
Signature · 1 line
2.30.2
#48 lore raw

PATCH 39/82 net/axgbe: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/axgbe/axgbe_rxtx.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/net/axgbe/axgbe_rxtx.c +2 -4
index 6bd41d3002bf..f38bb64fab6b 100644
@@ -22,8 +22,7 @@ axgbe_rx_queue_release(struct axgbe_rx_queue *rx_queue)
 		sw_ring = rx_queue->sw_ring;
 		if (sw_ring) {
 			for (i = 0; i < rx_queue->nb_desc; i++) {
-				if (sw_ring[i])
-					rte_pktmbuf_free(sw_ring[i]);
+				rte_pktmbuf_free(sw_ring[i]);
 			}
 			rte_free(sw_ring);
 		}
@@ -507,8 +506,7 @@ static void axgbe_tx_queue_release(struct axgbe_tx_queue *tx_queue)
 		sw_ring = tx_queue->sw_ring;
 		if (sw_ring) {
 			for (i = 0; i < tx_queue->nb_desc; i++) {
-				if (sw_ring[i])
-					rte_pktmbuf_free(sw_ring[i]);
+				rte_pktmbuf_free(sw_ring[i]);
 			}
 			rte_free(sw_ring);
 		}
Signature · 1 line
2.30.2
#49 lore raw

PATCH 40/82 net/bnx2x: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/bnx2x/bnx2x_rxtx.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/net/bnx2x/bnx2x_rxtx.c +2 -4
index 66b0512c8695..00ddccf151fd 100644
@@ -27,8 +27,7 @@ bnx2x_rx_queue_release(struct bnx2x_rx_queue *rx_queue)
 		sw_ring = rx_queue->sw_ring;
 		if (NULL != sw_ring) {
 			for (i = 0; i < rx_queue->nb_rx_desc; i++) {
-				if (NULL != sw_ring[i])
-					rte_pktmbuf_free(sw_ring[i]);
+				rte_pktmbuf_free(sw_ring[i]);
 			}
 			rte_free(sw_ring);
 		}
@@ -172,8 +171,7 @@ bnx2x_tx_queue_release(struct bnx2x_tx_queue *tx_queue)
 		sw_ring = tx_queue->sw_ring;
 		if (NULL != sw_ring) {
 			for (i = 0; i < tx_queue->nb_tx_desc; i++) {
-				if (NULL != sw_ring[i])
-					rte_pktmbuf_free(sw_ring[i]);
+				rte_pktmbuf_free(sw_ring[i]);
 			}
 			rte_free(sw_ring);
 		}
Signature · 1 line
2.30.2
#50 lore raw

PATCH 41/82 net/bnxt: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/bnxt/bnxt_ethdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/bnxt/bnxt_ethdev.c +1 -2
index f79f33ab4e17..78339d43674d 100644
@@ -5833,8 +5833,7 @@ static void bnxt_free_ctx_mem_buf(struct bnxt_ctx_mem_buf_info *ctx)
 	if (!ctx)
 		return;
 
-	if (ctx->va)
-		rte_free(ctx->va);
+	rte_free(ctx->va);
 
 	ctx->va = NULL;
 	ctx->dma = RTE_BAD_IOVA;
Signature · 1 line
2.30.2
#51 lore raw

PATCH 42/82 net/bonding: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/bonding/rte_eth_bond_pmd.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/bonding/rte_eth_bond_pmd.c +1 -2
index 84f4900ee52c..963280828a65 100644
@@ -2148,8 +2148,7 @@ bond_ethdev_close(struct rte_eth_dev *dev)
 	 */
 	rte_mempool_free(internals->mode6.mempool);
 
-	if (internals->kvlist != NULL)
-		rte_kvargs_free(internals->kvlist);
+	rte_kvargs_free(internals->kvlist);
 
 	return 0;
 }
Signature · 1 line
2.30.2
#52 lore raw

PATCH 43/82 net/cnxk: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/cnxk/cnxk_ethdev.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/net/cnxk/cnxk_ethdev.c +2 -4
index 74f625553df4..d679a1f78501 100644
@@ -934,10 +934,8 @@ nix_restore_queue_cfg(struct rte_eth_dev *eth_dev)
 	for (i = 0; i < eth_dev->data->nb_tx_queues; i++)
 		dev_ops->tx_queue_release(eth_dev, i);
 fail:
-	if (tx_qconf)
-		free(tx_qconf);
-	if (rx_qconf)
-		free(rx_qconf);
+	free(tx_qconf);
+	free(rx_qconf);
 
 	return rc;
 }
Signature · 1 line
2.30.2
#53 lore raw

PATCH 44/82 net/cxgbe: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/cxgbe/cxgbe_main.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/cxgbe/cxgbe_main.c +1 -2
index f1ac32270961..ab06e30a5e0f 100644
@@ -463,8 +463,7 @@ void cxgbe_insert_tid(struct tid_info *t, void *data, unsigned int tid,
 static void tid_free(struct tid_info *t)
 {
 	if (t->tid_tab) {
-		if (t->ftid_bmap)
-			rte_bitmap_free(t->ftid_bmap);
+		rte_bitmap_free(t->ftid_bmap);
 
 		if (t->ftid_bmap_array)
 			t4_os_free(t->ftid_bmap_array);
Signature · 1 line
2.30.2
#54 lore raw

PATCH 45/82 net/dpaa: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/dpaa/dpaa_ethdev.c  | 3 +--
 drivers/net/dpaa/fmlib/fm_lib.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)
drivers/net/dpaa/dpaa_ethdev.c +1 -2
index 2c2c4e4ebb5d..90208a31de26 100644
@@ -463,8 +463,7 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
 	}
 
 	/* release configuration memory */
-	if (dpaa_intf->fc_conf)
-		rte_free(dpaa_intf->fc_conf);
+	rte_free(dpaa_intf->fc_conf);
 
 	/* Release RX congestion Groups */
 	if (dpaa_intf->cgr_rx) {
drivers/net/dpaa/fmlib/fm_lib.c +1 -2
index 0d1ca12378d8..1d6816050c2f 100644
@@ -408,8 +408,7 @@ fm_port_close(t_handle h_fm_port)
 	_fml_dbg("Calling...\n");
 
 	close(p_dev->fd);
-	if (p_dev->h_user_priv)
-		free(p_dev->h_user_priv);
+	free(p_dev->h_user_priv);
 	free(p_dev);
 
 	_fml_dbg("Finishing.\n");
Signature · 1 line
2.30.2
#56 lore raw

PATCH 46/82 net/dpaa2: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/dpaa2/dpaa2_ethdev.c | 3 +--
 drivers/net/dpaa2/dpaa2_mux.c    | 3 +--
 drivers/net/dpaa2/dpaa2_ptp.c    | 3 +--
 3 files changed, 3 insertions(+), 6 deletions(-)
drivers/net/dpaa2/dpaa2_ethdev.c +1 -2
index 2b04f1416853..6b85b7740cfa 100644
@@ -504,8 +504,7 @@ dpaa2_free_rx_tx_queues(struct rte_eth_dev *dev)
 		/* cleaning up queue storage */
 		for (i = 0; i < priv->nb_rx_queues; i++) {
 			dpaa2_q = (struct dpaa2_queue *)priv->rx_vq[i];
-			if (dpaa2_q->q_storage)
-				rte_free(dpaa2_q->q_storage);
+			rte_free(dpaa2_q->q_storage);
 		}
 		/* cleanup tx queue cscn */
 		for (i = 0; i < priv->nb_tx_queues; i++) {
drivers/net/dpaa2/dpaa2_mux.c +1 -2
index cd2f7b8aa544..bd4596b89149 100644
@@ -353,8 +353,7 @@ dpaa2_create_dpdmux_device(int vdev_fd __rte_unused,
 	return 0;
 
 init_err:
-	if (dpdmux_dev)
-		rte_free(dpdmux_dev);
+	rte_free(dpdmux_dev);
 
 	return -1;
 }
drivers/net/dpaa2/dpaa2_ptp.c +1 -2
index 8d79e392445a..5fcc36abe7b0 100644
@@ -168,8 +168,7 @@ dpaa2_create_dprtc_device(int vdev_fd __rte_unused,
 	return 0;
 
 init_err:
-	if (dprtc_dev)
-		rte_free(dprtc_dev);
+	rte_free(dprtc_dev);
 
 	return -1;
 }
Signature · 1 line
2.30.2
#57 lore raw

PATCH 47/82 net/ena: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/ena/ena_ethdev.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)
drivers/net/ena/ena_ethdev.c +6 -12
index dce26cfa48cf..db2b5ec8e77b 100644
@@ -567,16 +567,13 @@ static void ena_rx_queue_release(struct rte_eth_dev *dev, uint16_t qid)
 	struct ena_ring *ring = dev->data->rx_queues[qid];
 
 	/* Free ring resources */
-	if (ring->rx_buffer_info)
-		rte_free(ring->rx_buffer_info);
+	rte_free(ring->rx_buffer_info);
 	ring->rx_buffer_info = NULL;
 
-	if (ring->rx_refill_buffer)
-		rte_free(ring->rx_refill_buffer);
+	rte_free(ring->rx_refill_buffer);
 	ring->rx_refill_buffer = NULL;
 
-	if (ring->empty_rx_reqs)
-		rte_free(ring->empty_rx_reqs);
+	rte_free(ring->empty_rx_reqs);
 	ring->empty_rx_reqs = NULL;
 
 	ring->configured = 0;
@@ -590,14 +587,11 @@ static void ena_tx_queue_release(struct rte_eth_dev *dev, uint16_t qid)
 	struct ena_ring *ring = dev->data->tx_queues[qid];
 
 	/* Free ring resources */
-	if (ring->push_buf_intermediate_buf)
-		rte_free(ring->push_buf_intermediate_buf);
+	rte_free(ring->push_buf_intermediate_buf);
 
-	if (ring->tx_buffer_info)
-		rte_free(ring->tx_buffer_info);
+	rte_free(ring->tx_buffer_info);
 
-	if (ring->empty_tx_reqs)
-		rte_free(ring->empty_tx_reqs);
+	rte_free(ring->empty_tx_reqs);
 
 	ring->empty_tx_reqs = NULL;
 	ring->tx_buffer_info = NULL;
Signature · 1 line
2.30.2
#58 lore raw

PATCH 48/82 net/hinic: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/hinic/hinic_pmd_ethdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/hinic/hinic_pmd_ethdev.c +1 -2
index e8d9aaba84a6..35788f46eb4c 100644
@@ -2662,8 +2662,7 @@ static int hinic_copy_mempool_init(struct hinic_nic_dev *nic_dev)
 
 static void hinic_copy_mempool_uninit(struct hinic_nic_dev *nic_dev)
 {
-	if (nic_dev->cpy_mpool != NULL)
-		rte_mempool_free(nic_dev->cpy_mpool);
+	rte_mempool_free(nic_dev->cpy_mpool);
 }
 
 static int hinic_init_sw_rxtxqs(struct hinic_nic_dev *nic_dev)
Signature · 1 line
2.30.2
#59 lore raw

PATCH 49/82 net/hns3: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/hns3/hns3_rxtx.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
drivers/net/hns3/hns3_rxtx.c +3 -6
index d240e36e6a86..8a428f88f48e 100644
@@ -86,8 +86,7 @@ hns3_rx_queue_release(void *queue)
 		hns3_rx_queue_release_mbufs(rxq);
 		if (rxq->mz)
 			rte_memzone_free(rxq->mz);
-		if (rxq->sw_ring)
-			rte_free(rxq->sw_ring);
+		rte_free(rxq->sw_ring);
 		rte_free(rxq);
 	}
 }
@@ -100,10 +99,8 @@ hns3_tx_queue_release(void *queue)
 		hns3_tx_queue_release_mbufs(txq);
 		if (txq->mz)
 			rte_memzone_free(txq->mz);
-		if (txq->sw_ring)
-			rte_free(txq->sw_ring);
-		if (txq->free)
-			rte_free(txq->free);
+		rte_free(txq->sw_ring);
+		rte_free(txq->free);
 		rte_free(txq);
 	}
 }
Signature · 1 line
2.30.2
#60 lore raw

PATCH 50/82 net/i40e: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/i40e/i40e_ethdev.c | 27 +++++++++------------------
 drivers/net/i40e/i40e_rxtx.c   |  3 +--
 2 files changed, 10 insertions(+), 20 deletions(-)
drivers/net/i40e/i40e_ethdev.c +9 -18
index 1d417dbf8ad7..ecfa3c94db44 100644
@@ -1781,10 +1781,8 @@ i40e_rm_ethtype_filter_list(struct i40e_pf *pf)
 
 	ethertype_rule = &pf->ethertype;
 	/* Remove all ethertype filter rules and hash */
-	if (ethertype_rule->hash_map)
-		rte_free(ethertype_rule->hash_map);
-	if (ethertype_rule->hash_table)
-		rte_hash_free(ethertype_rule->hash_table);
+	rte_free(ethertype_rule->hash_map);
+	rte_hash_free(ethertype_rule->hash_table);
 
 	while ((p_ethertype = TAILQ_FIRST(&ethertype_rule->ethertype_list))) {
 		TAILQ_REMOVE(&ethertype_rule->ethertype_list,
@@ -1801,10 +1799,8 @@ i40e_rm_tunnel_filter_list(struct i40e_pf *pf)
 
 	tunnel_rule = &pf->tunnel;
 	/* Remove all tunnel director rules and hash */
-	if (tunnel_rule->hash_map)
-		rte_free(tunnel_rule->hash_map);
-	if (tunnel_rule->hash_table)
-		rte_hash_free(tunnel_rule->hash_table);
+	rte_free(tunnel_rule->hash_map);
+	rte_hash_free(tunnel_rule->hash_table);
 
 	while ((p_tunnel = TAILQ_FIRST(&tunnel_rule->tunnel_list))) {
 		TAILQ_REMOVE(&tunnel_rule->tunnel_list, p_tunnel, rules);
@@ -1833,16 +1829,11 @@ i40e_fdir_memory_cleanup(struct i40e_pf *pf)
 	fdir_info = &pf->fdir;
 
 	/* flow director memory cleanup */
-	if (fdir_info->hash_map)
-		rte_free(fdir_info->hash_map);
-	if (fdir_info->hash_table)
-		rte_hash_free(fdir_info->hash_table);
-	if (fdir_info->fdir_flow_pool.bitmap)
-		rte_free(fdir_info->fdir_flow_pool.bitmap);
-	if (fdir_info->fdir_flow_pool.pool)
-		rte_free(fdir_info->fdir_flow_pool.pool);
-	if (fdir_info->fdir_filter_array)
-		rte_free(fdir_info->fdir_filter_array);
+	rte_free(fdir_info->hash_map);
+	rte_hash_free(fdir_info->hash_table);
+	rte_free(fdir_info->fdir_flow_pool.bitmap);
+	rte_free(fdir_info->fdir_flow_pool.pool);
+	rte_free(fdir_info->fdir_filter_array);
 }
 
 void i40e_flex_payload_reg_set_default(struct i40e_hw *hw)
drivers/net/i40e/i40e_rxtx.c +1 -2
index 9a00a9b71e2c..25a28ecea22c 100644
@@ -2573,8 +2573,7 @@ i40e_reset_rx_queue(struct i40e_rx_queue *rxq)
 	rxq->rx_tail = 0;
 	rxq->nb_rx_hold = 0;
 
-	if (rxq->pkt_first_seg != NULL)
-		rte_pktmbuf_free(rxq->pkt_first_seg);
+	rte_pktmbuf_free(rxq->pkt_first_seg);
 
 	rxq->pkt_first_seg = NULL;
 	rxq->pkt_last_seg = NULL;
Signature · 1 line
2.30.2
#61 lore raw

PATCH 51/82 net/iavf: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/iavf/iavf_rxtx.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/iavf/iavf_rxtx.c +1 -2
index 59623ac82094..dabe8cba7561 100644
@@ -230,8 +230,7 @@ reset_rx_queue(struct iavf_rx_queue *rxq)
 	rxq->rx_tail = 0;
 	rxq->nb_rx_hold = 0;
 
-	if (rxq->pkt_first_seg != NULL)
-		rte_pktmbuf_free(rxq->pkt_first_seg);
+	rte_pktmbuf_free(rxq->pkt_first_seg);
 
 	rxq->pkt_first_seg = NULL;
 	rxq->pkt_last_seg = NULL;
Signature · 1 line
2.30.2
#62 lore raw

PATCH 52/82 net/ice: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/ice/ice_fdir_filter.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/net/ice/ice_fdir_filter.c +2 -4
index 13a2ac42df87..3fce8e1e6253 100644
@@ -421,10 +421,8 @@ ice_fdir_release_filter_list(struct ice_pf *pf)
 {
 	struct ice_fdir_info *fdir_info = &pf->fdir;
 
-	if (fdir_info->hash_map)
-		rte_free(fdir_info->hash_map);
-	if (fdir_info->hash_table)
-		rte_hash_free(fdir_info->hash_table);
+	rte_free(fdir_info->hash_map);
+	rte_hash_free(fdir_info->hash_table);
 
 	fdir_info->hash_map = NULL;
 	fdir_info->hash_table = NULL;
Signature · 1 line
2.30.2
#63 lore raw

PATCH 53/82 net/igc: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/igc/igc_flow.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/igc/igc_flow.c +1 -2
index 66053060af5a..88978ee0e849 100644
@@ -776,8 +776,7 @@ igc_flow_create(struct rte_eth_dev *dev,
 
 	if (ret) {
 		/* check and free the memory */
-		if (flow)
-			rte_free(flow);
+		rte_free(flow);
 
 		rte_flow_error_set(error, -ret,
 				RTE_FLOW_ERROR_TYPE_HANDLE, NULL,
Signature · 1 line
2.30.2
#64 lore raw

RE: [PATCH 53/82] net/igc: remove unnecessary NULL checks

Quoted 20 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, January 24, 2022 08:05
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Wang, Haiyue <[email protected]>
Subject: [PATCH 53/82] net/igc: remove unnecessary NULL checks

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/igc/igc_flow.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/igc/igc_flow.c +0 -0
index 66053060af5a..88978ee0e849 100644

drivers/net/igc/igc_flow.c igc_flow_create(struct rte_eth_dev *dev, · line 778

Quoted 3 lines
drivers/net/igc/igc_flow.c +0 -0
@@ -776,8 +776,7 @@ igc_flow_create(struct rte_eth_dev *dev,
 
 	if (ret) {
 		/* check and free the memory */

This comment line can be removed either, since 'check' is done by 'rte_free' internally.

Quoted 8 lines
drivers/net/igc/igc_flow.c +1 -3
-		if (flow)
-			rte_free(flow);
+		rte_free(flow);
 
 		rte_flow_error_set(error, -ret,
 				RTE_FLOW_ERROR_TYPE_HANDLE, NULL,
--

2.30.2

#65 lore raw

PATCH 54/82 net/ixgbe: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/ixgbe/ixgbe_ethdev.c | 10 +++-------
 drivers/net/ixgbe/ixgbe_rxtx.c   |  3 +--
 2 files changed, 4 insertions(+), 9 deletions(-)
drivers/net/ixgbe/ixgbe_ethdev.c +3 -7
index c8f0460440c0..840509ddd460 100644
@@ -1322,10 +1322,8 @@ static int ixgbe_fdir_filter_uninit(struct rte_eth_dev *eth_dev)
 		IXGBE_DEV_PRIVATE_TO_FDIR_INFO(eth_dev->data->dev_private);
 	struct ixgbe_fdir_filter *fdir_filter;
 
-		if (fdir_info->hash_map)
 		rte_free(fdir_info->hash_map);
-	if (fdir_info->hash_handle)
-		rte_hash_free(fdir_info->hash_handle);
+	rte_hash_free(fdir_info->hash_handle);
 
 	while ((fdir_filter = TAILQ_FIRST(&fdir_info->fdir_list))) {
 		TAILQ_REMOVE(&fdir_info->fdir_list,
@@ -1343,10 +1341,8 @@ static int ixgbe_l2_tn_filter_uninit(struct rte_eth_dev *eth_dev)
 		IXGBE_DEV_PRIVATE_TO_L2_TN_INFO(eth_dev->data->dev_private);
 	struct ixgbe_l2_tn_filter *l2_tn_filter;
 
-	if (l2_tn_info->hash_map)
-		rte_free(l2_tn_info->hash_map);
-	if (l2_tn_info->hash_handle)
-		rte_hash_free(l2_tn_info->hash_handle);
+	rte_free(l2_tn_info->hash_map);
+	rte_hash_free(l2_tn_info->hash_handle);
 
 	while ((l2_tn_filter = TAILQ_FIRST(&l2_tn_info->l2_tn_list))) {
 		TAILQ_REMOVE(&l2_tn_info->l2_tn_list,
drivers/net/ixgbe/ixgbe_rxtx.c +1 -2
index 99e928a2a971..9e8ea366a506 100644
@@ -2983,8 +2983,7 @@ ixgbe_reset_rx_queue(struct ixgbe_adapter *adapter, struct ixgbe_rx_queue *rxq)
 	rxq->rx_tail = 0;
 	rxq->nb_rx_hold = 0;
 
-	if (rxq->pkt_first_seg != NULL)
-		rte_pktmbuf_free(rxq->pkt_first_seg);
+	rte_pktmbuf_free(rxq->pkt_first_seg);
 
 	rxq->pkt_first_seg = NULL;
 	rxq->pkt_last_seg = NULL;
Signature · 1 line
2.30.2
#66 lore raw

RE: [PATCH 54/82] net/ixgbe: remove unnecessary NULL checks

Quoted 21 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, January 24, 2022 08:05
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Wang, Haiyue <[email protected]>
Subject: [PATCH 54/82] net/ixgbe: remove unnecessary NULL checks

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/ixgbe/ixgbe_ethdev.c | 10 +++-------
 drivers/net/ixgbe/ixgbe_rxtx.c   |  3 +--
 2 files changed, 4 insertions(+), 9 deletions(-)
drivers/net/ixgbe/ixgbe_ethdev.c +0 -0
index c8f0460440c0..840509ddd460 100644

drivers/net/ixgbe/ixgbe_ethdev.c static int ixgbe_fdir_filter_uninit(struct rte_eth_dev *eth_dev) · line 1325

Quoted 5 lines
drivers/net/ixgbe/ixgbe_ethdev.c +0 -1
@@ -1322,10 +1322,8 @@ static int ixgbe_fdir_filter_uninit(struct rte_eth_dev *eth_dev)
 		IXGBE_DEV_PRIVATE_TO_FDIR_INFO(eth_dev->data->dev_private);
 	struct ixgbe_fdir_filter *fdir_filter;
 
-		if (fdir_info->hash_map)
 		rte_free(fdir_info->hash_map);

This " rte_free(fdir_info->hash_map);" needs to be adjusted by removing one tab. ;-)

Quoted 8 lines
drivers/net/ixgbe/ixgbe_ethdev.c +1 -3
-	if (fdir_info->hash_handle)
-		rte_hash_free(fdir_info->hash_handle);
+	rte_hash_free(fdir_info->hash_handle);
 
 
 
--

2.30.2

#67 lore raw

PATCH 55/82 net/memif: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/memif/rte_eth_memif.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/net/memif/rte_eth_memif.c +2 -4
index 59cb5a82a23f..5c2203f5270b 100644
@@ -1731,8 +1731,7 @@ memif_check_socket_filename(const char *filename)
 		ret = -EINVAL;
 	}
 
-	if (dir != NULL)
-		rte_free(dir);
+	rte_free(dir);
 
 	return ret;
 }
@@ -1903,8 +1902,7 @@ rte_pmd_memif_probe(struct rte_vdev_device *vdev)
 			   log2_ring_size, pkt_buffer_size, secret, ether_addr);
 
 exit:
-	if (kvlist != NULL)
-		rte_kvargs_free(kvlist);
+	rte_kvargs_free(kvlist);
 	return ret;
 }
 
Signature · 1 line
2.30.2
#68 lore raw

PATCH 56/82 net/mlx4: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/mlx4/mlx4_mr.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/mlx4/mlx4_mr.c +1 -2
index 2274b5df1950..e95f45aa3e95 100644
@@ -471,8 +471,7 @@ mr_free(struct mlx4_mr *mr)
 	DEBUG("freeing MR(%p):", (void *)mr);
 	if (mr->ibv_mr != NULL)
 		claim_zero(mlx4_glue->dereg_mr(mr->ibv_mr));
-	if (mr->ms_bmp != NULL)
-		rte_bitmap_free(mr->ms_bmp);
+	rte_bitmap_free(mr->ms_bmp);
 	rte_free(mr);
 }
 
Signature · 1 line
2.30.2
#69 lore raw

PATCH 57/82 net/mlx5: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/mlx5/mlx5_flow.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/mlx5/mlx5_flow.c +1 -2
index b7cf4143d5a1..c718dbdb3dc7 100644
@@ -6990,8 +6990,7 @@ flow_alloc_thread_workspace(void)
 	data->rssq_num = MLX5_RSSQ_DEFAULT_NUM;
 	return data;
 err:
-	if (data->rss_desc.queue)
-		free(data->rss_desc.queue);
+	free(data->rss_desc.queue);
 	free(data);
 	return NULL;
 }
Signature · 1 line
2.30.2
#70 lore raw

PATCH 58/82 net/mvpp2: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/mvpp2/mrvl_qos.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/mvpp2/mrvl_qos.c +1 -2
index 99f0ee56d1a7..f43217bc589c 100644
@@ -945,8 +945,7 @@ setup_tc(struct pp2_ppio_tc_params *param, uint8_t inqs,
 	param->num_in_qs = inqs;
 
 	/* Release old config if necessary. */
-	if (param->inqs_params)
-		rte_free(param->inqs_params);
+	rte_free(param->inqs_params);
 
 	param->inqs_params = inq_params;
 
Signature · 1 line
2.30.2
Reviewed-by on v1 58/82
#71 lore raw

RE: [EXT] [PATCH 58/82] net/mvpp2: remove unnecessary NULL checks

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, 24 January 2022 02:05
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Liron Himi <[email protected]>
Subject: [EXT] [PATCH 58/82] net/mvpp2: remove unnecessary NULL checks

External Email

----------------------------------------------------------------------
Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/mvpp2/mrvl_qos.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/mvpp2/mrvl_qos.c +1 -2
@@ -945,8 +945,7 @@ setup_tc(struct pp2_ppio_tc_params *param, uint8_t inqs,
 	param->num_in_qs = inqs;
 
 	/* Release old config if necessary. */
-	if (param->inqs_params)
-		rte_free(param->inqs_params);
+	rte_free(param->inqs_params);
 
 	param->inqs_params = inq_params;
 

--
2.30.2

#72 lore raw

PATCH 59/82 net/netvsc: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/netvsc/hn_rxtx.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/net/netvsc/hn_rxtx.c +2 -4
index 50ca1710ef3e..3e3488f1b87a 100644
@@ -315,8 +315,7 @@ hn_dev_tx_queue_setup(struct rte_eth_dev *dev,
 	}
 
 error:
-	if (txq->txdesc_pool)
-		rte_mempool_free(txq->txdesc_pool);
+	rte_mempool_free(txq->txdesc_pool);
 	rte_memzone_free(txq->tx_rndis_mz);
 	rte_free(txq);
 	return err;
@@ -365,8 +364,7 @@ hn_dev_tx_queue_release(struct rte_eth_dev *dev, uint16_t qid)
 	if (!txq)
 		return;
 
-	if (txq->txdesc_pool)
-		rte_mempool_free(txq->txdesc_pool);
+	rte_mempool_free(txq->txdesc_pool);
 
 	rte_memzone_free(txq->tx_rndis_mz);
 	rte_free(txq);
Signature · 1 line
2.30.2
Acked-by on v1 59/82
#73 lore raw

RE: [PATCH 59/82] net/netvsc: remove unnecessary NULL checks

Quoted 6 lines

Subject: [PATCH 59/82] net/netvsc: remove unnecessary NULL checks

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

Quoted 31 lines
---
 drivers/net/netvsc/hn_rxtx.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/net/netvsc/hn_rxtx.c index renamed from drivers/net/netvsc/hn_rxtx.c +0 -0

50ca1710ef3e..3e3488f1b87a 100644

drivers/net/netvsc/hn_rxtx.c +2 -4
@@ -315,8 +315,7 @@ hn_dev_tx_queue_setup(struct rte_eth_dev *dev,
 	}
 
 error:
-	if (txq->txdesc_pool)
-		rte_mempool_free(txq->txdesc_pool);
+	rte_mempool_free(txq->txdesc_pool);
 	rte_memzone_free(txq->tx_rndis_mz);
 	rte_free(txq);
 	return err;
@@ -365,8 +364,7 @@ hn_dev_tx_queue_release(struct rte_eth_dev *dev,
 uint16_t qid)
 	if (!txq)
 		return;
 
-	if (txq->txdesc_pool)
-		rte_mempool_free(txq->txdesc_pool);
+	rte_mempool_free(txq->txdesc_pool);
 
 	rte_memzone_free(txq->tx_rndis_mz);

rte_free(txq);
--
2.30.2

#74 lore raw

PATCH 60/82 net/null: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/null/rte_eth_null.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/null/rte_eth_null.c +1 -2
index ca03469d0e6d..bb89c1abc4a2 100644
@@ -717,8 +717,7 @@ rte_pmd_null_probe(struct rte_vdev_device *dev)
 	ret = eth_dev_null_create(dev, &args);
 
 free_kvlist:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
+	rte_kvargs_free(kvlist);
 	return ret;
 }
 
Signature · 1 line
2.30.2
#75 lore raw

PATCH 61/82 net/octeontx: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/octeontx/octeontx_ethdev.c     | 3 +--
 drivers/net/octeontx/octeontx_ethdev_ops.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)
drivers/net/octeontx/octeontx_ethdev.c +1 -2
index b47472ebbd93..f5ea9de8efe5 100644
@@ -1037,8 +1037,7 @@ octeontx_dev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx,
 	return res;
 
 err:
-	if (txq)
-		rte_free(txq);
+	rte_free(txq);
 
 	return res;
 }
drivers/net/octeontx/octeontx_ethdev_ops.c +1 -2
index 6ec2b71b0672..0b22e28a5625 100644
@@ -108,8 +108,7 @@ octeontx_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
 	if (rc != 0) {
 		octeontx_log_err("Fail to configure vlan filter entry "
 				 "for port %d", nic->port_id);
-		if (entry)
-			rte_free(entry);
+		rte_free(entry);
 
 		goto done;
 	}
Signature · 1 line
2.30.2
#76 lore raw

PATCH 62/82 net/qede: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/qede/qede_main.c | 3 +--
 drivers/net/qede/qede_rxtx.c | 6 ++----
 2 files changed, 3 insertions(+), 6 deletions(-)
drivers/net/qede/qede_main.c +1 -2
index 2d1f70693a3d..ad101194d613 100644
@@ -335,8 +335,7 @@ static int qed_slowpath_start(struct ecore_dev *edev,
 err:
 #ifdef CONFIG_ECORE_BINARY_FW
 	if (IS_PF(edev)) {
-		if (edev->firmware)
-			rte_free(edev->firmware);
+		rte_free(edev->firmware);
 		edev->firmware = NULL;
 	}
 #endif
drivers/net/qede/qede_rxtx.c +2 -4
index 7088c57b501d..1c0a6ba5f1bf 100644
@@ -706,12 +706,10 @@ void qede_dealloc_fp_resc(struct rte_eth_dev *eth_dev)
 		}
 	}
 
-	if (qdev->fp_array)
-		rte_free(qdev->fp_array);
+	rte_free(qdev->fp_array);
 	qdev->fp_array = NULL;
 
-	if (qdev->fp_array_cmt)
-		rte_free(qdev->fp_array_cmt);
+	rte_free(qdev->fp_array_cmt);
 	qdev->fp_array_cmt = NULL;
 }
 
Signature · 1 line
2.30.2
#77 lore raw

PATCH 63/82 net/softnic: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/softnic/rte_eth_softnic_cli.c       | 12 ++++--------
 drivers/net/softnic/rte_eth_softnic_cryptodev.c |  6 ++----
 drivers/net/softnic/rte_eth_softnic_thread.c    |  6 ++----
 3 files changed, 8 insertions(+), 16 deletions(-)
drivers/net/softnic/rte_eth_softnic_cli.c +4 -8
index b04e78c6e0af..7acbeecae7a2 100644
@@ -4482,10 +4482,8 @@ parse_free_sym_crypto_param_data(struct rte_table_action_sym_crypto_params *p)
 
 		switch (xform[i]->type) {
 		case RTE_CRYPTO_SYM_XFORM_CIPHER:
-			if (p->cipher_auth.cipher_iv.val)
-				free(p->cipher_auth.cipher_iv.val);
-			if (p->cipher_auth.cipher_iv_update.val)
-				free(p->cipher_auth.cipher_iv_update.val);
+			free(p->cipher_auth.cipher_iv.val);
+			free(p->cipher_auth.cipher_iv_update.val);
 			break;
 		case RTE_CRYPTO_SYM_XFORM_AUTH:
 			if (p->cipher_auth.auth_iv.val)
@@ -4494,10 +4492,8 @@ parse_free_sym_crypto_param_data(struct rte_table_action_sym_crypto_params *p)
 				free(p->cipher_auth.cipher_iv_update.val);
 			break;
 		case RTE_CRYPTO_SYM_XFORM_AEAD:
-			if (p->aead.iv.val)
-				free(p->aead.iv.val);
-			if (p->aead.aad.val)
-				free(p->aead.aad.val);
+			free(p->aead.iv.val);
+			free(p->aead.aad.val);
 			break;
 		default:
 			continue;
drivers/net/softnic/rte_eth_softnic_cryptodev.c +2 -4
index 9a7d006f1a09..e4754055e90b 100644
@@ -159,10 +159,8 @@ softnic_cryptodev_create(struct pmd_internals *p,
 	return cryptodev;
 
 error_exit:
-	if (cryptodev->mp_create)
-		rte_mempool_free(cryptodev->mp_create);
-	if (cryptodev->mp_init)
-		rte_mempool_free(cryptodev->mp_init);
+	rte_mempool_free(cryptodev->mp_create);
+	rte_mempool_free(cryptodev->mp_init);
 
 	free(cryptodev);
 
drivers/net/softnic/rte_eth_softnic_thread.c +2 -4
index a8c26a5b2377..1b3b3c33c175 100644
@@ -29,11 +29,9 @@ softnic_thread_free(struct pmd_internals *softnic)
 		struct softnic_thread *t = &softnic->thread[i];
 
 		/* MSGQs */
-		if (t->msgq_req)
-			rte_ring_free(t->msgq_req);
+		rte_ring_free(t->msgq_req);
 
-		if (t->msgq_rsp)
-			rte_ring_free(t->msgq_rsp);
+		rte_ring_free(t->msgq_rsp);
 	}
 }
 
Signature · 1 line
2.30.2
#78 lore raw

RE: [PATCH 63/82] net/softnic: remove unnecessary NULL checks

Quoted 14 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, January 24, 2022 12:05 AM
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Singh, Jasvinder <[email protected]>; Dumitrescu, Cristian <[email protected]>
Subject: [PATCH 63/82] net/softnic: remove unnecessary NULL checks

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

Quoted 7 lines
---
 drivers/net/softnic/rte_eth_softnic_cli.c       | 12 ++++--------
 drivers/net/softnic/rte_eth_softnic_cryptodev.c |  6 ++----
 drivers/net/softnic/rte_eth_softnic_thread.c    |  6 ++----
 3 files changed, 8 insertions(+), 16 deletions(-)

Hi Stephen,

The rte_ring_free() and rte_mempool_free() do not state in their API description that freeing a NULL pointer is harmless. Before pushing these changes, please add the necessary note in the API header files for these functions.

In the absence of the clear note in their API description, the user is forced to check for the NULL pointer. I agree that the implementation of these functions does the right think and exits early when the input pointer is NULL, but there is no guarantee that the implementation is not going to change. Agree?

The stdlib free() and the rte_free() do have the clear API description note that freeing a NULL object is harmless, so removing the NULL check before their call is indeed safe.

This stands for all the patches in this set.

Regards,
Cristian

#79 lore raw

PATCH 64/82 net/tap: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/tap/tap_flow.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
drivers/net/tap/tap_flow.c +3 -6
index 76738239458a..a9a55e439efc 100644
@@ -1465,8 +1465,7 @@ tap_flow_create(struct rte_eth_dev *dev,
 	}
 	return flow;
 fail:
-	if (remote_flow)
-		rte_free(remote_flow);
+	rte_free(remote_flow);
 	if (flow)
 		tap_flow_free(pmd, flow);
 	return NULL;
@@ -1541,8 +1540,7 @@ tap_flow_destroy_pmd(struct pmd_internals *pmd,
 		}
 	}
 end:
-	if (remote_flow)
-		rte_free(remote_flow);
+	rte_free(remote_flow);
 	tap_flow_free(pmd, flow);
 	return ret;
 }
@@ -1764,8 +1762,7 @@ int tap_flow_implicit_create(struct pmd_internals *pmd,
 success:
 	return 0;
 fail:
-	if (remote_flow)
-		rte_free(remote_flow);
+	rte_free(remote_flow);
 	return -1;
 }
 
Signature · 1 line
2.30.2
#80 lore raw

PATCH 65/82 net/txgbe: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/txgbe/txgbe_ethdev.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)
drivers/net/txgbe/txgbe_ethdev.c +4 -8
index ac4d4e08f407..6024397072c8 100644
@@ -821,10 +821,8 @@ static int txgbe_fdir_filter_uninit(struct rte_eth_dev *eth_dev)
 	struct txgbe_hw_fdir_info *fdir_info = TXGBE_DEV_FDIR(eth_dev);
 	struct txgbe_fdir_filter *fdir_filter;
 
-	if (fdir_info->hash_map)
-		rte_free(fdir_info->hash_map);
-	if (fdir_info->hash_handle)
-		rte_hash_free(fdir_info->hash_handle);
+	rte_free(fdir_info->hash_map);
+	rte_hash_free(fdir_info->hash_handle);
 
 	while ((fdir_filter = TAILQ_FIRST(&fdir_info->fdir_list))) {
 		TAILQ_REMOVE(&fdir_info->fdir_list,
@@ -841,10 +839,8 @@ static int txgbe_l2_tn_filter_uninit(struct rte_eth_dev *eth_dev)
 	struct txgbe_l2_tn_info *l2_tn_info = TXGBE_DEV_L2_TN(eth_dev);
 	struct txgbe_l2_tn_filter *l2_tn_filter;
 
-	if (l2_tn_info->hash_map)
-		rte_free(l2_tn_info->hash_map);
-	if (l2_tn_info->hash_handle)
-		rte_hash_free(l2_tn_info->hash_handle);
+	rte_free(l2_tn_info->hash_map);
+	rte_hash_free(l2_tn_info->hash_handle);
 
 	while ((l2_tn_filter = TAILQ_FIRST(&l2_tn_info->l2_tn_list))) {
 		TAILQ_REMOVE(&l2_tn_info->l2_tn_list,
Signature · 1 line
2.30.2
#81 lore raw

PATCH 66/82 net/vdev_netvsc: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/vdev_netvsc/vdev_netvsc.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/vdev_netvsc/vdev_netvsc.c +1 -2
index 55f2a342c5ae..25871951685c 100644
@@ -717,8 +717,7 @@ vdev_netvsc_vdev_probe(struct rte_vdev_device *dev)
 error:
 	++vdev_netvsc_ctx_inst;
 ignore:
-	if (kvargs)
-		rte_kvargs_free(kvargs);
+	rte_kvargs_free(kvargs);
 	/* Reset alarm if there are device context created */
 	if (vdev_netvsc_ctx_count) {
 		ret = rte_eal_alarm_set(VDEV_NETVSC_PROBE_MS * 1000,
Signature · 1 line
2.30.2
#82 lore raw

PATCH 67/82 net/virtio: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/virtio/virtio_user_ethdev.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)
drivers/net/virtio/virtio_user_ethdev.c +4 -8
index 0271098f0da0..f6288fd0c492 100644
@@ -688,14 +688,10 @@ virtio_user_pmd_probe(struct rte_vdev_device *vdev)
 	ret = 0;
 
 end:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
-	if (path)
-		free(path);
-	if (mac_addr)
-		free(mac_addr);
-	if (ifname)
-		free(ifname);
+	rte_kvargs_free(kvlist);
+	free(path);
+	free(mac_addr);
+	free(ifname);
 	return ret;
 }
 
Signature · 1 line
2.30.2
#83 lore raw

PATCH 68/82 raw/cnxk_bphy: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c +1 -2
index 0b694e1c03c3..169cbc785531 100644
@@ -233,8 +233,7 @@ cnxk_bphy_cgx_fini_queues(struct cnxk_bphy_cgx *cgx)
 	unsigned int i;
 
 	for (i = 0; i < cgx->num_queues; i++) {
-		if (cgx->queues[i].rsp)
-			rte_free(cgx->queues[i].rsp);
+		rte_free(cgx->queues[i].rsp);
 	}
 
 	cgx->num_queues = 0;
Signature · 1 line
2.30.2
#84 lore raw

PATCH 69/82 raw/dpaa2_qdma: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)
drivers/raw/dpaa2_qdma/dpaa2_qdma.c +5 -10
index ebc2cd5d0ddc..b2260439a4ef 100644
@@ -1115,11 +1115,9 @@ dpaa2_qdma_reset(struct rte_rawdev *rawdev)
 
 	/* Reset and free virtual queues */
 	for (i = 0; i < qdma_dev->max_vqs; i++) {
-		if (qdma_dev->vqs[i].status_ring)
-			rte_ring_free(qdma_dev->vqs[i].status_ring);
+		rte_ring_free(qdma_dev->vqs[i].status_ring);
 	}
-	if (qdma_dev->vqs)
-		rte_free(qdma_dev->vqs);
+	rte_free(qdma_dev->vqs);
 	qdma_dev->vqs = NULL;
 
 	/* Reset per core info */
@@ -1314,8 +1312,7 @@ dpaa2_qdma_queue_setup(struct rte_rawdev *rawdev,
 
 	if (qdma_dev->vqs[i].hw_queue == NULL) {
 		DPAA2_QDMA_ERR("No H/W queue available for VQ");
-		if (qdma_dev->vqs[i].status_ring)
-			rte_ring_free(qdma_dev->vqs[i].status_ring);
+		rte_ring_free(qdma_dev->vqs[i].status_ring);
 		qdma_dev->vqs[i].status_ring = NULL;
 		rte_spinlock_unlock(&qdma_dev->lock);
 		return -ENODEV;
@@ -1516,14 +1513,12 @@ dpaa2_qdma_queue_release(struct rte_rawdev *rawdev,
 	if (qdma_vq->exclusive_hw_queue)
 		free_hw_queue(qdma_vq->hw_queue);
 	else {
-		if (qdma_vq->status_ring)
-			rte_ring_free(qdma_vq->status_ring);
+		rte_ring_free(qdma_vq->status_ring);
 
 		put_hw_queue(qdma_vq->hw_queue);
 	}
 
-	if (qdma_vq->fle_pool)
-		rte_mempool_free(qdma_vq->fle_pool);
+	rte_mempool_free(qdma_vq->fle_pool);
 
 	memset(qdma_vq, 0, sizeof(struct qdma_virt_queue));
 
Signature · 1 line
2.30.2
#85 lore raw

PATCH 70/82 raw/ifpga: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/raw/ifpga/ifpga_rawdev.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
drivers/raw/ifpga/ifpga_rawdev.c +3 -6
index 0eae0c9477b6..c68e378dc3ce 100644
@@ -836,8 +836,7 @@ rte_fpga_do_pr(struct rte_rawdev *rawdev, int port_id,
 	}
 
 free_buffer:
-	if (buf_to_free)
-		rte_free(buf_to_free);
+	rte_free(buf_to_free);
 close_fd:
 	close(file_fd);
 	file_fd = 0;
@@ -1739,10 +1738,8 @@ ifpga_cfg_probe(struct rte_vdev_device *dev)
 	ret = rte_eal_hotplug_add(RTE_STR(IFPGA_BUS_NAME),
 			dev_name, devargs->args);
 end:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
-	if (name)
-		free(name);
+	rte_kvargs_free(kvlist);
+	free(name);
 
 	return ret;
 }
Signature · 1 line
2.30.2
#86 lore raw

PATCH 71/82 raw/skeleton: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/raw/skeleton/skeleton_rawdev_test.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/raw/skeleton/skeleton_rawdev_test.c +2 -4
index 484468eeb460..693b24c415de 100644
@@ -395,13 +395,11 @@ test_rawdev_enqdeq(void)
 	RTE_TEST_ASSERT_EQUAL((unsigned int)ret, count,
 			      "Unable to dequeue buffers");
 
-	if (deq_buffers)
-		free(deq_buffers);
+	free(deq_buffers);
 
 	return TEST_SUCCESS;
 cleanup:
-	if (buffers[0].buf_addr)
-		free(buffers[0].buf_addr);
+	free(buffers[0].buf_addr);
 
 	return TEST_FAILED;
 }
Signature · 1 line
2.30.2
#88 lore raw

PATCH 72/82 regex/cn9k: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/regex/cn9k/cn9k_regexdev.c          | 6 ++----
 drivers/regex/cn9k/cn9k_regexdev_compiler.c | 3 +--
 2 files changed, 3 insertions(+), 6 deletions(-)
drivers/regex/cn9k/cn9k_regexdev.c +2 -4
index 32d20c1be82b..56c862c5a76c 100644
@@ -256,10 +256,8 @@ ree_dev_fini(struct rte_regexdev *dev)
 		cn9k_err("Could not detach queues");
 
 	/* TEMP : should be in lib */
-	if (data->queue_pairs)
-		rte_free(data->queue_pairs);
-	if (data->rules)
-		rte_free(data->rules);
+	rte_free(data->queue_pairs);
+	rte_free(data->rules);
 
 	roc_ree_dev_fini(vf);
 
drivers/regex/cn9k/cn9k_regexdev_compiler.c +1 -2
index 935b8a53b459..60f1c1b4c4d8 100644
@@ -214,8 +214,7 @@ cn9k_ree_rule_db_compile_prog(struct rte_regexdev *dev)
 	rxp_free_structs(NULL, NULL, NULL, NULL, NULL, &rof, NULL, &rofi, NULL,
 			1);
 
-	if (rule_db)
-		rte_free(rule_db);
+	rte_free(rule_db);
 
 	return ret;
 }
Signature · 1 line
2.30.2
Reviewed-by on v1 72/82
#89 lore raw

RE: [EXT] [PATCH 72/82] regex/cn9k: remove unnecessary NULL checks

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, 24 January 2022 02:05
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Liron Himi <[email protected]>
Subject: [EXT] [PATCH 72/82] regex/cn9k: remove unnecessary NULL checks

External Email

----------------------------------------------------------------------
Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/regex/cn9k/cn9k_regexdev.c          | 6 ++----
 drivers/regex/cn9k/cn9k_regexdev_compiler.c | 3 +--
 2 files changed, 3 insertions(+), 6 deletions(-)
drivers/regex/cn9k/cn9k_regexdev.c +2 -4
index 32d20c1be82b..56c862c5a76c 100644
@@ -256,10 +256,8 @@ ree_dev_fini(struct rte_regexdev *dev)
 		cn9k_err("Could not detach queues");
 
 	/* TEMP : should be in lib */
-	if (data->queue_pairs)
-		rte_free(data->queue_pairs);
-	if (data->rules)
-		rte_free(data->rules);
+	rte_free(data->queue_pairs);
+	rte_free(data->rules);
 
 	roc_ree_dev_fini(vf);
 
drivers/regex/cn9k/cn9k_regexdev_compiler.c +1 -2
index 935b8a53b459..60f1c1b4c4d8 100644
@@ -214,8 +214,7 @@ cn9k_ree_rule_db_compile_prog(struct rte_regexdev *dev)
 	rxp_free_structs(NULL, NULL, NULL, NULL, NULL, &rof, NULL, &rofi, NULL,
 			1);
 
-	if (rule_db)
-		rte_free(rule_db);
+	rte_free(rule_db);
 
 	return ret;
 }

--
2.30.2

#90 lore raw

PATCH 73/82 regex/mlx5: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/regex/mlx5/mlx5_regex.c | 3 +--
 drivers/regex/mlx5/mlx5_rxp.c   | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)
drivers/regex/mlx5/mlx5_regex.c +1 -2
index e5a12fb3cc4d..48e39f6b8844 100644
@@ -127,8 +127,7 @@ mlx5_regex_dev_probe(struct mlx5_common_device *cdev)
 	if (priv->regexdev)
 		rte_regexdev_unregister(priv->regexdev);
 dev_error:
-	if (priv)
-		rte_free(priv);
+	rte_free(priv);
 	return -rte_errno;
 }
 
drivers/regex/mlx5/mlx5_rxp.c +1 -2
index 5ead3ca341ad..99db1e4a865c 100644
@@ -166,7 +166,6 @@ mlx5_regex_configure(struct rte_regexdev *dev,
 		DRV_LOG(DEBUG, "Regex config without rules programming!");
 	return 0;
 configure_error:
-	if (priv->qps)
-		rte_free(priv->qps);
+	rte_free(priv->qps);
 	return -rte_errno;
 }
Signature · 1 line
2.30.2
#91 lore raw

PATCH 74/82 vdpa/ifc: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/vdpa/ifc/ifcvf_vdpa.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
drivers/vdpa/ifc/ifcvf_vdpa.c +3 -6
index 3853c4cf7e85..9f05595b6b34 100644
@@ -226,8 +226,7 @@ ifcvf_dma_map(struct ifcvf_internal *internal, bool do_map)
 	}
 
 exit:
-	if (mem)
-		free(mem);
+	free(mem);
 	return ret;
 }
 
@@ -253,8 +252,7 @@ hva_to_gpa(int vid, uint64_t hva)
 	}
 
 exit:
-	if (mem)
-		free(mem);
+	free(mem);
 	return gpa;
 }
 
@@ -661,8 +659,7 @@ m_ifcvf_start(struct ifcvf_internal *internal)
 
 error:
 	for (i = 0; i < nr_vring; i++)
-		if (internal->m_vring[i].desc)
-			rte_free(internal->m_vring[i].desc);
+		rte_free(internal->m_vring[i].desc);
 
 	return -1;
 }
Signature · 1 line
2.30.2
#92 lore raw

PATCH 75/82 vdpa/mlx5: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/vdpa/mlx5/mlx5_vdpa_mem.c   | 3 +--
 drivers/vdpa/mlx5/mlx5_vdpa_virtq.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)
drivers/vdpa/mlx5/mlx5_vdpa_mem.c +1 -2
index 130d201a85f5..599079500b03 100644
@@ -283,8 +283,7 @@ mlx5_vdpa_mem_register(struct mlx5_vdpa_priv *priv)
 	priv->gpa_mkey_index = entry->mkey->id;
 	return 0;
 error:
-	if (entry)
-		rte_free(entry);
+	rte_free(entry);
 	mlx5_vdpa_mem_dereg(priv);
 	rte_errno = -ret;
 	return ret;
drivers/vdpa/mlx5/mlx5_vdpa_virtq.c +1 -2
index 2f32aef67fbc..3416797d289c 100644
@@ -91,8 +91,7 @@ mlx5_vdpa_virtq_unset(struct mlx5_vdpa_virtq *virtq)
 		if (virtq->umems[i].obj)
 			claim_zero(mlx5_glue->devx_umem_dereg
 							 (virtq->umems[i].obj));
-		if (virtq->umems[i].buf)
-			rte_free(virtq->umems[i].buf);
+		rte_free(virtq->umems[i].buf);
 	}
 	memset(&virtq->umems, 0, sizeof(virtq->umems));
 	if (virtq->eqp.fw_qp)
Signature · 1 line
2.30.2
#93 lore raw

PATCH 76/82 compressdev: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/compressdev/rte_compressdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
lib/compressdev/rte_compressdev.c +1 -2
index 2e9218af68f6..d4f7d4d3daf2 100644
@@ -405,8 +405,7 @@ rte_compressdev_queue_pairs_release(struct rte_compressdev *dev)
 			return ret;
 	}
 
-	if (dev->data->queue_pairs != NULL)
-		rte_free(dev->data->queue_pairs);
+	rte_free(dev->data->queue_pairs);
 	dev->data->queue_pairs = NULL;
 	dev->data->nb_queue_pairs = 0;
 
Signature · 1 line
2.30.2
#94 lore raw

PATCH 77/82 ethdev: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/ethdev/rte_ethdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
lib/ethdev/rte_ethdev.c +1 -2
index a1d475a29295..98312fa157f6 100644
@@ -6036,8 +6036,7 @@ rte_eth_devargs_parse(const char *dargs, struct rte_eth_devargs *eth_da)
 	}
 
 parse_cleanup:
-	if (args.str)
-		free(args.str);
+	free(args.str);
 
 	return result;
 }
Signature · 1 line
2.30.2
#95 lore raw

PATCH 78/82 graph: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/graph/graph_stats.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
lib/graph/graph_stats.c +1 -2
index aa70929dc32e..65e12d46a313 100644
@@ -233,8 +233,7 @@ cluster_add(struct cluster *cluster, struct graph *graph)
 static void
 cluster_fini(struct cluster *cluster)
 {
-	if (cluster->graphs)
-		free(cluster->graphs);
+	free(cluster->graphs);
 }
 
 static int
Signature · 1 line
2.30.2
#96 lore raw

PATCH 79/82 ipsec: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/ipsec/ipsec_sad.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
lib/ipsec/ipsec_sad.c +1 -2
index 531e1e323cdc..af4b1ce757d2 100644
@@ -440,8 +440,7 @@ rte_ipsec_sad_destroy(struct rte_ipsec_sad *sad)
 	rte_hash_free(sad->hash[RTE_IPSEC_SAD_SPI_DIP]);
 	rte_hash_free(sad->hash[RTE_IPSEC_SAD_SPI_DIP_SIP]);
 	rte_free(sad);
-	if (te != NULL)
-		rte_free(te);
+	rte_free(te);
 }
 
 /*
Signature · 1 line
2.30.2
#97 lore raw

PATCH 80/82 port: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/port/rte_port_source_sink.c | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)
lib/port/rte_port_source_sink.c +7 -14
index 68575c98338d..79042d13ff66 100644
@@ -163,14 +163,10 @@ pcap_source_load(struct rte_port_source *port,
 	return 0;
 
 error_exit:
-	if (pkt_len_aligns)
-		rte_free(pkt_len_aligns);
-	if (port->pkt_len)
-		rte_free(port->pkt_len);
-	if (port->pkts)
-		rte_free(port->pkts);
-	if (port->pkt_buff)
-		rte_free(port->pkt_buff);
+	rte_free(pkt_len_aligns);
+	rte_free(port->pkt_len);
+	rte_free(port->pkts);
+	rte_free(port->pkt_buff);
 
 	return -1;
 }
@@ -242,12 +238,9 @@ rte_port_source_free(void *port)
 	if (p == NULL)
 		return 0;
 
-	if (p->pkt_len)
-		rte_free(p->pkt_len);
-	if (p->pkts)
-		rte_free(p->pkts);
-	if (p->pkt_buff)
-		rte_free(p->pkt_buff);
+	rte_free(p->pkt_len);
+	rte_free(p->pkts);
+	rte_free(p->pkt_buff);
 
 	rte_free(p);
 
Signature · 1 line
2.30.2
#98 lore raw

PATCH 81/82 power: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/power/rte_power_empty_poll.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
lib/power/rte_power_empty_poll.c +1 -2
index c4b5de9601cf..2261ce7820f6 100644
@@ -457,8 +457,7 @@ rte_power_empty_poll_stat_free(void)
 
 	RTE_LOG(INFO, POWER, "Close the Empty Poll\n");
 
-	if (ep_params != NULL)
-		rte_free(ep_params);
+	rte_free(ep_params);
 }
 
 int
Signature · 1 line
2.30.2
#99 lore raw

PATCH 82/82 reorder: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/reorder/rte_reorder.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
lib/reorder/rte_reorder.c +2 -4
index 9445853b79cc..bc0241bfb3fd 100644
@@ -192,10 +192,8 @@ rte_reorder_free_mbufs(struct rte_reorder_buffer *b)
 
 	/* Free up the mbufs of order buffer & ready buffer */
 	for (i = 0; i < b->order_buf.size; i++) {
-		if (b->order_buf.entries[i])
-			rte_pktmbuf_free(b->order_buf.entries[i]);
-		if (b->ready_buf.entries[i])
-			rte_pktmbuf_free(b->ready_buf.entries[i]);
+		rte_pktmbuf_free(b->order_buf.entries[i]);
+		rte_pktmbuf_free(b->ready_buf.entries[i]);
 	}
 }
 
Signature · 1 line
2.30.2
#100 lore raw

v2 cover remove unnecessary null checks

In reply to Stephen Hemminger

While working on a new driver, noticed that some drivers always call free routines (correct) and others conditionally call free routines if not null (redundant check). The extra if(e != NULL) type check is unneeded and adds extra code. Better to have all the code consistent.

The Linux kernel has automated this kind of fixup using coccinelle, and this patchset creates a coccinelle script to do the transformation; then has individual patches for each sub component.

In one driver dpaaxx, the change suggested a further change to the compat macros to make them even simpler.

v2
- add documentation change patch
- spelling fix to coccinelle script patch
- suggested whitespace fix to igc and ixgbe patch

Stephen Hemminger (83):
lib: update documentation of XXX_free() functions devtools/cocci: add script to fix unnecessary null checks
eal: remove unnecessary NULL checks
eal/windows: remove unnecessary NULL checks before free examples/fips_validation: remove unnecessary NULL checks examples/ip_pipeline: remove unnecessary NULL checks examples/pipeline/thread: remove unnecessary NULL checks examples/l2fwd-cat: remove unnecessary NULL checks lib/vhost: remove unnecessary NULL checks examples/vhost_blk: remove unnecessary NULL checks app/pdump: remove unnecessary NULL checks app/test-crypto-perf: remove unnecessary NULL checks app/test-pmd: remove unnecessary NULL checks app/test-regex: remove unnecessary NULL checks app/test: remove unnecessary NULL checks baseband/acc100 remove unnecessary NULL checks baseband/la12xx remove unnecessary NULL checks baseband/null remove unnecessary NULL checks baseband/turbo_sw remove unnecessary NULL checks bus/fslmc: remove unnecessary NULL checks bus/ifpga: remove unnecessary NULL checks bus/pci: remove unnecessary NULL checks common/cpt: remove unnecessary NULL checks common/dpaax: simplify kernel compat macros common/mlx5: remove unnecessary NULL checks common/qat: remove unnecessary NULL checks compress/mlx5: remove unnecessary NULL checks compress/octeontx: remove unnecessary NULL checks crypto/armv8: remove unnecessary NULL checks crypto/ccp: remove unnecessary NULL checks crypto/cnxk: remove unnecessary NULL checks crypto/ipsec_mb: remove unnecessary NULL checks crypto/mvsam: remove unnecessary NULL checks crypto/null: remove unnecessary NULL checks crypto/octeontx: remove unnecessary NULL checks crypto/openssl: remove unnecessary NULL checks crypto/scheduler: remove unnecessary NULL checks crypto/virtio: remove unnecessary NULL checks event/sw: remove unnecessary NULL checks net/axgbe: remove unnecessary NULL checks net/bnx2x: remove unnecessary NULL checks net/bnxt: remove unnecessary NULL checks net/bonding: remove unnecessary NULL checks net/cnxk: remove unnecessary NULL checks net/cxgbe: remove unnecessary NULL checks net/dpaa: remove unnecessary NULL checks net/dpaa2: remove unnecessary NULL checks net/ena: remove unnecessary NULL checks net/hinic: remove unnecessary NULL checks net/hns3: remove unnecessary NULL checks net/i40e: remove unnecessary NULL checks net/iavf: remove unnecessary NULL checks net/ice: remove unnecessary NULL checks
net/igc: remove unnecessary NULL checks net/ixgbe: remove unnecessary NULL checks net/memif: remove unnecessary NULL checks net/mlx4: remove unnecessary NULL checks net/mlx5: remove unnecessary NULL checks net/mvpp2: remove unnecessary NULL checks net/netvsc: remove unnecessary NULL checks net/null: remove unnecessary NULL checks net/octeontx: remove unnecessary NULL checks net/qede: remove unnecessary NULL checks net/softnic: remove unnecessary NULL checks net/tap: remove unnecessary NULL checks net/txgbe: remove unnecessary NULL checks net/vdev_netvsc: remove unnecessary NULL checks net/virtio: remove unnecessary NULL checks raw/cnxk_bphy: remove unnecessary NULL checks raw/dpaa2_qdma: remove unnecessary NULL checks raw/ifpga: remove unnecessary NULL checks raw/skeleton: remove unnecessary NULL checks regex/cn9k: remove unnecessary NULL checks regex/mlx5: remove unnecessary NULL checks vdpa/ifc: remove unnecessary NULL checks vdpa/mlx5: remove unnecessary NULL checks
compressdev: remove unnecessary NULL checks
ethdev: remove unnecessary NULL checks
graph: remove unnecessary NULL checks
ipsec: remove unnecessary NULL checks
port: remove unnecessary NULL checks
power: remove unnecessary NULL checks
reorder: remove unnecessary NULL checks

 app/pdump/main.c                              |  9 ++--
 app/test-crypto-perf/cperf_test_latency.c     |  3 +-
 .../cperf_test_pmd_cyclecount.c               |  9 ++--
 app/test-crypto-perf/cperf_test_throughput.c  |  3 +-
 .../cperf_test_vector_parsing.c               |  6 +--
 app/test-crypto-perf/cperf_test_verify.c      |  3 +-
 app/test-pmd/cmd_flex_item.c                  |  3 +-
 app/test-pmd/cmdline.c                        |  3 +-
 app/test-pmd/testpmd.c                        |  3 +-
 app/test-regex/main.c                         | 12 ++---
 app/test/test_cksum.c                         |  3 +-
 app/test/test_compressdev.c                   |  3 +-
 app/test/test_cryptodev.h                     |  3 +-
 app/test/test_cryptodev_asym.c                |  3 +-
 app/test/test_cryptodev_blockcipher.c         | 12 ++---
 app/test/test_func_reentrancy.c               | 15 +++----
 app/test/test_hash.c                          | 15 +++----
 app/test/test_hash_perf.c                     |  7 +--
 app/test/test_link_bonding.c                  |  9 ++--
 app/test/test_link_bonding_mode4.c            |  3 +-
 app/test/test_malloc.c                        |  5 +--
 app/test/test_mbuf.c                          | 45 +++++++------------
 app/test/test_pcapng.c                        |  3 +-
 app/test/test_reorder.c                       | 15 +++----
 app/test/virtual_pmd.c                        |  3 +-
 devtools/cocci/nullfree.cocci                 | 33 ++++++++++++++
 drivers/baseband/acc100/rte_acc100_pmd.c      |  3 +-
 drivers/baseband/la12xx/bbdev_la12xx.c        |  3 +-
 drivers/baseband/null/bbdev_null.c            |  3 +-
 .../baseband/turbo_sw/bbdev_turbo_software.c  |  3 +-
 drivers/bus/fslmc/fslmc_bus.c                 |  6 +--
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c      |  6 +--
 drivers/bus/ifpga/ifpga_bus.c                 | 12 ++---
 drivers/bus/pci/pci_params.c                  |  3 +-
 drivers/bus/pci/windows/pci.c                 |  3 +-
 drivers/bus/pci/windows/pci_netuio.c          |  3 +-
 drivers/common/cpt/cpt_ucode_asym.h           |  6 +--
 drivers/common/dpaax/compat.h                 | 11 +----
 drivers/common/mlx5/mlx5_common_mr.c          |  3 +-
 drivers/common/mlx5/mlx5_common_pci.c         |  3 +-
 drivers/common/qat/qat_qp.c                   |  9 ++--
 drivers/compress/mlx5/mlx5_compress.c         |  3 +-
 drivers/compress/octeontx/otx_zip_pmd.c       |  9 ++--
 drivers/crypto/armv8/rte_armv8_pmd_ops.c      |  3 +-
 drivers/crypto/ccp/ccp_dev.c                  |  3 +-
 drivers/crypto/ccp/ccp_pmd_ops.c              |  3 +-
 drivers/crypto/cnxk/cnxk_ae.h                 |  6 +--
 drivers/crypto/ipsec_mb/ipsec_mb_ops.c        |  6 +--
 drivers/crypto/mvsam/rte_mrvl_pmd_ops.c       |  6 +--
 drivers/crypto/null/null_crypto_pmd_ops.c     |  6 +--
 drivers/crypto/octeontx/otx_cryptodev_ops.c   |  3 +-
 drivers/crypto/openssl/rte_openssl_pmd_ops.c  |  6 +--
 drivers/crypto/scheduler/scheduler_pmd_ops.c  |  6 +--
 drivers/crypto/virtio/virtqueue.c             |  6 +--
 drivers/event/sw/sw_evdev.c                   |  3 +-
 drivers/net/axgbe/axgbe_rxtx.c                |  6 +--
 drivers/net/bnx2x/bnx2x_rxtx.c                |  6 +--
 drivers/net/bnxt/bnxt_ethdev.c                |  3 +-
 drivers/net/bonding/rte_eth_bond_pmd.c        |  3 +-
 drivers/net/cnxk/cnxk_ethdev.c                |  6 +--
 drivers/net/cxgbe/cxgbe_main.c                |  3 +-
 drivers/net/dpaa/dpaa_ethdev.c                |  3 +-
 drivers/net/dpaa/fmlib/fm_lib.c               |  3 +-
 drivers/net/dpaa2/dpaa2_ethdev.c              |  3 +-
 drivers/net/dpaa2/dpaa2_mux.c                 |  3 +-
 drivers/net/dpaa2/dpaa2_ptp.c                 |  3 +-
 drivers/net/ena/ena_ethdev.c                  | 18 +++-----
 drivers/net/hinic/hinic_pmd_ethdev.c          |  3 +-
 drivers/net/hns3/hns3_rxtx.c                  |  9 ++--
 drivers/net/i40e/i40e_ethdev.c                | 27 ++++-------
 drivers/net/i40e/i40e_rxtx.c                  |  3 +-
 drivers/net/iavf/iavf_rxtx.c                  |  3 +-
 drivers/net/ice/ice_fdir_filter.c             |  6 +--
 drivers/net/igc/igc_flow.c                    |  5 +--
 drivers/net/ixgbe/ixgbe_ethdev.c              | 12 ++---
 drivers/net/ixgbe/ixgbe_rxtx.c                |  3 +-
 drivers/net/memif/rte_eth_memif.c             |  6 +--
 drivers/net/mlx4/mlx4_mr.c                    |  3 +-
 drivers/net/mlx5/mlx5_flow.c                  |  3 +-
 drivers/net/mvpp2/mrvl_qos.c                  |  3 +-
 drivers/net/netvsc/hn_rxtx.c                  |  6 +--
 drivers/net/null/rte_eth_null.c               |  3 +-
 drivers/net/octeontx/octeontx_ethdev.c        |  3 +-
 drivers/net/octeontx/octeontx_ethdev_ops.c    |  3 +-
 drivers/net/qede/qede_main.c                  |  3 +-
 drivers/net/qede/qede_rxtx.c                  |  6 +--
 drivers/net/softnic/rte_eth_softnic_cli.c     | 12 ++---
 .../net/softnic/rte_eth_softnic_cryptodev.c   |  6 +--
 drivers/net/softnic/rte_eth_softnic_thread.c  |  6 +--
 drivers/net/tap/tap_flow.c                    |  9 ++--
 drivers/net/txgbe/txgbe_ethdev.c              | 12 ++---
 drivers/net/vdev_netvsc/vdev_netvsc.c         |  3 +-
 drivers/net/virtio/virtio_user_ethdev.c       | 12 ++---
 drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c         |  3 +-
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c           | 15 +++----
 drivers/raw/ifpga/ifpga_rawdev.c              |  9 ++--
 drivers/raw/skeleton/skeleton_rawdev_test.c   |  6 +--
 drivers/regex/cn9k/cn9k_regexdev.c            |  6 +--
 drivers/regex/cn9k/cn9k_regexdev_compiler.c   |  3 +-
 drivers/regex/mlx5/mlx5_regex.c               |  3 +-
 drivers/regex/mlx5/mlx5_rxp.c                 |  3 +-
 drivers/vdpa/ifc/ifcvf_vdpa.c                 |  9 ++--
 drivers/vdpa/mlx5/mlx5_vdpa_mem.c             |  3 +-
 drivers/vdpa/mlx5/mlx5_vdpa_virtq.c           |  3 +-
 examples/fips_validation/fips_dev_self_test.c | 18 +++-----
 examples/fips_validation/fips_validation.c    |  3 +-
 examples/fips_validation/main.c               | 36 +++++----------
 examples/ip_pipeline/cli.c                    | 12 ++---
 examples/ip_pipeline/cryptodev.c              |  6 +--
 examples/ip_pipeline/thread.c                 |  6 +--
 examples/l2fwd-cat/cat.c                      |  3 +-
 examples/pipeline/thread.c                    |  6 +--
 examples/vhost_blk/vhost_blk.c                |  3 +-
 lib/compressdev/rte_compressdev.c             |  3 +-
 lib/eal/common/eal_common_devargs.c           |  6 +--
 lib/eal/common/eal_common_memzone.c           |  3 +-
 lib/eal/common/eal_common_options.c           |  9 ++--
 lib/eal/common/eal_common_trace_ctf.c         |  6 +--
 lib/eal/freebsd/eal.c                         |  4 +-
 lib/eal/linux/eal.c                           | 10 ++---
 lib/eal/windows/eal_alarm.c                   |  3 +-
 lib/eal/windows/eal_memory.c                  |  3 +-
 lib/ethdev/rte_ethdev.c                       |  3 +-
 lib/graph/graph_stats.c                       |  3 +-
 lib/hash/rte_hash.h                           |  3 ++
 lib/ipsec/ipsec_sad.c                         |  3 +-
 lib/kvargs/rte_kvargs.h                       |  2 +
 lib/mbuf/rte_mbuf.h                           |  2 +
 lib/mempool/rte_mempool.h                     |  2 +
 lib/port/rte_port_source_sink.c               | 21 +++------
 lib/power/rte_power_empty_poll.c              |  3 +-
 lib/reorder/rte_reorder.c                     |  6 +--
 lib/ring/rte_ring.h                           |  2 +
 lib/vhost/iotlb.c                             |  3 +-
 lib/vhost/vhost_crypto.c                      |  6 +--
 lib/vhost/vhost_user.c                        |  9 ++--
 136 files changed, 318 insertions(+), 560 deletions(-)
 create mode 100644 devtools/cocci/nullfree.cocci
Signature · 1 line
2.30.2
#101 lore raw

PATCH v2 1/83 lib: update documentation of XXX_free() functions

These functions all behave like libc free() and do nothing if handed a NULL pointer. The code is already doing this, this patch just documents the behavior.

---
 lib/hash/rte_hash.h       | 3 +++
 lib/kvargs/rte_kvargs.h   | 2 ++
 lib/mbuf/rte_mbuf.h       | 2 ++
 lib/mempool/rte_mempool.h | 2 ++
 lib/ring/rte_ring.h       | 2 ++
 5 files changed, 11 insertions(+)
lib/hash/rte_hash.h +3 -0
index 6067aad95431..94223cf81ae0 100644
@@ -174,6 +174,9 @@ rte_hash_find_existing(const char *name);
 
 /**
  * De-allocate all memory used by hash table.
+ *
+ * If the pointer is NULL, the function does nothing.
+ *
  * @param h
  *   Hash table to free
  */
lib/kvargs/rte_kvargs.h +2 -0
index 359a9f5b091c..bf1732ce2b1e 100644
@@ -108,6 +108,8 @@ struct rte_kvargs *rte_kvargs_parse_delim(const char *args,
  * Free a rte_kvargs structure previously allocated with
  * rte_kvargs_parse().
  *
+ * If the pointer is NULL, the function does nothing.
+ *
  * @param kvlist
  *   The rte_kvargs structure. No error if NULL.
  */
lib/mbuf/rte_mbuf.h +2 -0
index dedf83c38d1b..cb280108d3f9 100644
@@ -1372,6 +1372,8 @@ rte_pktmbuf_free_seg(struct rte_mbuf *m)
  * Free an mbuf, and all its segments in case of chained buffers. Each
  * segment is added back into its original mempool.
  *
+ * If the pointer is NULL, the function does nothing.
+ *
  * @param m
  *   The packet mbuf to be freed. If NULL, the function does nothing.
  */
lib/mempool/rte_mempool.h +2 -0
index 1e7a3c15273c..c268328b268b 100644
@@ -1099,6 +1099,8 @@ rte_mempool_create_empty(const char *name, unsigned n, unsigned elt_size,
  * memory referenced by the mempool. The objects must not be used by
  * other cores as they will be freed.
  *
+ * If the pointer is NULL, the function does nothing.
+ *
  * @param mp
  *   A pointer to the mempool structure.
  */
lib/ring/rte_ring.h +2 -0
index da17ed6d7c04..c2faf7b3e6dc 100644
@@ -176,6 +176,8 @@ struct rte_ring *rte_ring_create(const char *name, unsigned int count,
 /**
  * De-allocate all memory used by the ring.
  *
+ * If the pointer is NULL, the function does nothing.
+ *
  * @param r
  *   Ring to free
  */
Signature · 1 line
2.30.2
#102 lore raw

Re: [PATCH v2 01/83] lib: update documentation of XXX_free() functions

24/01/2022 18:45, Stephen Hemminger:

Quoted 10 lines

These functions all behave like libc free() and do nothing if handed a NULL pointer. The code is already doing this, this patch just documents the behavior.

---
/**
* De-allocate all memory used by hash table.
+ *
+ * If the pointer is NULL, the function does nothing.

Would be better to move in the context of the parameter.

Quoted 3 lines

+ *
* @param h
* Hash table to free

Here:
If NULL, the function does nothing.

Same for comment for all files of this patch.

lib/kvargs/rte_kvargs.h struct rte_kvargs *rte_kvargs_parse_delim(const char *args, · line 114

Quoted 8 lines
lib/kvargs/rte_kvargs.h +2 -0
@@ -108,6 +108,8 @@ struct rte_kvargs *rte_kvargs_parse_delim(const char *args,
  * Free a rte_kvargs structure previously allocated with
  * rte_kvargs_parse().
  *
+ * If the pointer is NULL, the function does nothing.
+ *
  * @param kvlist
  *   The rte_kvargs structure. No error if NULL.

Would need to reword "No error" to "Does nothing".

lib/mbuf/rte_mbuf.h rte_pktmbuf_free_seg(struct rte_mbuf *m) · line 1378

Quoted 8 lines
lib/mbuf/rte_mbuf.h +2 -0
@@ -1372,6 +1372,8 @@ rte_pktmbuf_free_seg(struct rte_mbuf *m)
  * Free an mbuf, and all its segments in case of chained buffers. Each
  * segment is added back into its original mempool.
  *
+ * If the pointer is NULL, the function does nothing.
+ *
  * @param m
  *   The packet mbuf to be freed. If NULL, the function does nothing.

Here the comment exists already in the right place.

#103 lore raw

Re: [PATCH v2 01/83] lib: update documentation of XXX_free() functions

Quoted 5 lines · On Fri, 28 Jan 2022 22:47:15 +0100 Thomas Monjalon <[email protected]> wrote:

24/01/2022 18:45, Stephen Hemminger:

Quoted 4 lines

These functions all behave like libc free() and do nothing if handed a NULL pointer. The code is already doing this, this patch just documents the behavior.

Quoted 8 lines
Quoted 6 lines

---
/**
* De-allocate all memory used by hash table.
+ *
+ * If the pointer is NULL, the function does nothing.

Would be better to move in the context of the parameter

I copied text from rte_free to other functions... For consistency, lets document it one way in all cases. Don't care which one...

#104 lore raw

Re: [PATCH v2 01/83] lib: update documentation of XXX_free() functions

28/01/2022 23:51, Stephen Hemminger:

Quoted 15 lines
Quoted 12 lines · On Fri, 28 Jan 2022 22:47:15 +0100 Thomas Monjalon <[email protected]> wrote:

24/01/2022 18:45, Stephen Hemminger:

Quoted 10 lines

These functions all behave like libc free() and do nothing if handed a NULL pointer. The code is already doing this, this patch just documents the behavior.

---
/**
* De-allocate all memory used by hash table.
+ *
+ * If the pointer is NULL, the function does nothing.

Quoted 5 lines
Quoted 1 line

Would be better to move in the context of the parameter

I copied text from rte_free to other functions... For consistency, lets document it one way in all cases. Don't care which one...

I prefer to have comments about a parameter inside the @param please.

#105 lore raw

Re: [PATCH v2 01/83] lib: update documentation of XXX_free() functions

29/01/2022 19:51, Thomas Monjalon:

Quoted 16 lines

28/01/2022 23:51, Stephen Hemminger:

Quoted 15 lines
Quoted 12 lines · On Fri, 28 Jan 2022 22:47:15 +0100 Thomas Monjalon <[email protected]> wrote:

24/01/2022 18:45, Stephen Hemminger:

Quoted 10 lines

These functions all behave like libc free() and do nothing if handed a NULL pointer. The code is already doing this, this patch just documents the behavior.

---
/**
* De-allocate all memory used by hash table.
+ *
+ * If the pointer is NULL, the function does nothing.

Quoted 7 lines
Quoted 5 lines
Quoted 1 line

Would be better to move in the context of the parameter

I copied text from rte_free to other functions... For consistency, lets document it one way in all cases. Don't care which one...

I prefer to have comments about a parameter inside the @param please.

Please would you provide a v3 before -rc1?

#106 lore raw

PATCH v2 2/83 devtools/cocci: add script to fix unnecessary null checks

In reply to Stephen Hemminger

This script is based on the idea of the nullfree script in the Linux kernel. It finds cases where a check for null pointer is done, but is unnecessary because the function already handles NULL pointer.

Basic example:

       if (x->buf)
           rte_free(x->buf);
can be reduced to:
       rte_free(x->buf);
---
 devtools/cocci/nullfree.cocci | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 devtools/cocci/nullfree.cocci
devtools/cocci/nullfree.cocci new file +33 -0
new file mode 100644
index 000000000000..363b6149ac28
@@ -0,0 +1,33 @@
+//
+// Remove unnecessary NULL pointer checks before free functions
+// All these functions work like libc free which allows
+// free(NULL) as a no-op.
+//
+@@
+expression E;
+@@
+(
+- if (E != NULL) free(E);
++ free(E);
+|
+- if (E != NULL) rte_bitmap_free(E);
++ rte_bitmap_free(E);
+|
+- if (E != NULL) rte_free(E);
++ rte_free(E);
+|
+- if (E != NULL) rte_hash_free(E);
++ rte_hash_free(E);
+|
+- if (E != NULL) rte_ring_free(E);
++ rte_ring_free(E);
+|
+- if (E != NULL) rte_pktmbuf_free(E);
++ rte_pktmbuf_free(E);
+|
+- if (E != NULL) rte_mempool_free(E);
++ rte_mempool_free(E);
+|
+- if (E != NULL) rte_kvargs_free(E);
++ rte_kvargs_free(E);
+)
Signature · 1 line
2.30.2
#107 lore raw

Re: [PATCH v2 02/83] devtools/cocci: add script to fix unnecessary null checks

24/01/2022 18:45, Stephen Hemminger:

Quoted 5 lines

This script is based on the idea of the nullfree script in the Linux kernel. It finds cases where a check for null pointer is done, but is unnecessary because the function already handles NULL pointer.

Quoted 7 lines

Basic example:

       if (x->buf)
           rte_free(x->buf);
can be reduced to:
       rte_free(x->buf);

Good to have, thank you.

#108 lore raw

PATCH v2 3/83 eal: remove unnecessary NULL checks

In reply to Stephen Hemminger

Functions like free() already handle NULL pointer so the checks here are not necessary.

---
 lib/eal/common/eal_common_devargs.c   |  6 ++----
 lib/eal/common/eal_common_memzone.c   |  3 +--
 lib/eal/common/eal_common_options.c   |  9 +++------
 lib/eal/common/eal_common_trace_ctf.c |  6 ++----
 lib/eal/freebsd/eal.c                 |  4 +---
 lib/eal/linux/eal.c                   | 10 +++-------
 6 files changed, 12 insertions(+), 26 deletions(-)
lib/eal/common/eal_common_devargs.c +2 -4
index 8c7650cf6c27..69004b0a2d2f 100644
@@ -161,8 +161,7 @@ rte_devargs_layers_parse(struct rte_devargs *devargs,
 
 get_out:
 	for (i = 0; i < RTE_DIM(layers); i++) {
-		if (layers[i].kvlist)
-			rte_kvargs_free(layers[i].kvlist);
+		rte_kvargs_free(layers[i].kvlist);
 	}
 	if (ret != 0) {
 		if (allocated_data) {
@@ -285,8 +284,7 @@ rte_devargs_reset(struct rte_devargs *da)
 {
 	if (da == NULL)
 		return;
-	if (da->data)
-		free(da->data);
+	free(da->data);
 	da->data = NULL;
 }
 
lib/eal/common/eal_common_memzone.c +1 -2
index ecde9441ee90..9a0c5309ac7e 100644
@@ -300,8 +300,7 @@ rte_memzone_free(const struct rte_memzone *mz)
 
 	rte_rwlock_write_unlock(&mcfg->mlock);
 
-	if (addr != NULL)
-		rte_free(addr);
+	rte_free(addr);
 
 	rte_eal_trace_memzone_free(name, addr, ret);
 	return ret;
lib/eal/common/eal_common_options.c +3 -6
index 1cfdd75f3b79..09b7b17ffa06 100644
@@ -1962,12 +1962,9 @@ compute_ctrl_threads_cpuset(struct internal_config *internal_cfg)
 int
 eal_cleanup_config(struct internal_config *internal_cfg)
 {
-	if (internal_cfg->hugefile_prefix != NULL)
-		free(internal_cfg->hugefile_prefix);
-	if (internal_cfg->hugepage_dir != NULL)
-		free(internal_cfg->hugepage_dir);
-	if (internal_cfg->user_mbuf_pool_ops_name != NULL)
-		free(internal_cfg->user_mbuf_pool_ops_name);
+	free(internal_cfg->hugefile_prefix);
+	free(internal_cfg->hugepage_dir);
+	free(internal_cfg->user_mbuf_pool_ops_name);
 
 	return 0;
 }
lib/eal/common/eal_common_trace_ctf.c +2 -4
index 33e419aac7fb..3b83bcdf57fd 100644
@@ -52,8 +52,7 @@ meta_copy(char **meta, int *offset, char *str, int rc)
 	return rc;
 
 free_str:
-	if (str)
-		free(str);
+	free(str);
 	return -ENOMEM;
 }
 
@@ -291,8 +290,7 @@ trace_metadata_create(void)
 	return 0;
 
 fail:
-	if (meta)
-		free(meta);
+	free(meta);
 	return -EBADF;
 }
 
lib/eal/freebsd/eal.c +1 -3
index a1cd2462db1b..00ba32f1d664 100644
@@ -544,9 +544,7 @@ eal_parse_args(int argc, char **argv)
 				RTE_LOG(ERR, EAL, "Could not store mbuf pool ops name\n");
 			else {
 				/* free old ops name */
-				if (internal_conf->user_mbuf_pool_ops_name !=
-						NULL)
-					free(internal_conf->user_mbuf_pool_ops_name);
+				free(internal_conf->user_mbuf_pool_ops_name);
 
 				internal_conf->user_mbuf_pool_ops_name =
 						ops_name;
lib/eal/linux/eal.c +3 -7
index 60b49248388e..f8e39b7e4277 100644
@@ -730,8 +730,7 @@ eal_parse_args(int argc, char **argv)
 				RTE_LOG(ERR, EAL, "Could not store hugepage directory\n");
 			else {
 				/* free old hugepage dir */
-				if (internal_conf->hugepage_dir != NULL)
-					free(internal_conf->hugepage_dir);
+				free(internal_conf->hugepage_dir);
 				internal_conf->hugepage_dir = hdir;
 			}
 			break;
@@ -743,8 +742,7 @@ eal_parse_args(int argc, char **argv)
 				RTE_LOG(ERR, EAL, "Could not store file prefix\n");
 			else {
 				/* free old prefix */
-				if (internal_conf->hugefile_prefix != NULL)
-					free(internal_conf->hugefile_prefix);
+				free(internal_conf->hugefile_prefix);
 				internal_conf->hugefile_prefix = prefix;
 			}
 			break;
@@ -804,9 +802,7 @@ eal_parse_args(int argc, char **argv)
 				RTE_LOG(ERR, EAL, "Could not store mbuf pool ops name\n");
 			else {
 				/* free old ops name */
-				if (internal_conf->user_mbuf_pool_ops_name !=
-						NULL)
-					free(internal_conf->user_mbuf_pool_ops_name);
+				free(internal_conf->user_mbuf_pool_ops_name);
 
 				internal_conf->user_mbuf_pool_ops_name =
 						ops_name;
Signature · 1 line
2.30.2
#109 lore raw

PATCH v2 4/83 eal/windows: remove unnecessary NULL checks before free

In reply to Stephen Hemminger

Calling free/rte_free/rte_mempool_free,... with NULL pointer is allowed; so remove unnecessary NULL checks.

---
 lib/eal/windows/eal_alarm.c  | 3 +--
 lib/eal/windows/eal_memory.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)
lib/eal/windows/eal_alarm.c +1 -2
index 103c1f909da3..51fe752c16d4 100644
@@ -162,8 +162,7 @@ rte_eal_alarm_set(uint64_t us, rte_eal_alarm_callback cb_fn, void *cb_arg)
 fail:
 	if (timer != NULL)
 		CloseHandle(timer);
-	if (ap != NULL)
-		free(ap);
+	free(ap);
 
 exit:
 	rte_eal_trace_alarm_set(us, cb_fn, cb_arg, ret);
lib/eal/windows/eal_memory.c +1 -2
index 2fd37d97085e..215d768e2c57 100644
@@ -190,8 +190,7 @@ eal_mem_virt2iova_init(void)
 	ret = 0;
 
 exit:
-	if (detail != NULL)
-		free(detail);
+	free(detail);
 	if (list != INVALID_HANDLE_VALUE)
 		SetupDiDestroyDeviceInfoList(list);
 
Signature · 1 line
2.30.2
#110 lore raw

PATCH v2 5/83 examples/fips_validation: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 examples/fips_validation/fips_dev_self_test.c | 18 ++++------
 examples/fips_validation/fips_validation.c    |  3 +-
 examples/fips_validation/main.c               | 36 +++++++------------
 3 files changed, 19 insertions(+), 38 deletions(-)
examples/fips_validation/fips_dev_self_test.c +6 -12
index b4eab05a9851..076e9de099c0 100644
@@ -1396,8 +1396,7 @@ check_aead_result(struct rte_crypto_op *op,
 	if (!mbuf)
 		return -1;
 
-	if (op->sym->aead.aad.data)
-		rte_free(op->sym->aead.aad.data);
+	rte_free(op->sym->aead.aad.data);
 
 	if (dir == self_test_dir_enc_auth_gen) {
 		src = vec->output.data;
@@ -1523,18 +1522,13 @@ static void
 fips_dev_auto_test_uninit(uint8_t dev_id,
 		struct fips_dev_auto_test_env *env)
 {
-	if (env->mbuf)
-		rte_pktmbuf_free(env->mbuf);
+	rte_pktmbuf_free(env->mbuf);
 	if (env->op)
 		rte_crypto_op_free(env->op);
-	if (env->mpool)
-		rte_mempool_free(env->mpool);
-	if (env->op_pool)
-		rte_mempool_free(env->op_pool);
-	if (env->sess_pool)
-		rte_mempool_free(env->sess_pool);
-	if (env->sess_priv_pool)
-		rte_mempool_free(env->sess_priv_pool);
+	rte_mempool_free(env->mpool);
+	rte_mempool_free(env->op_pool);
+	rte_mempool_free(env->sess_pool);
+	rte_mempool_free(env->sess_priv_pool);
 
 	rte_cryptodev_stop(dev_id);
 }
examples/fips_validation/fips_validation.c +1 -2
index 52a7bf952d46..94253eaee8bf 100644
@@ -344,8 +344,7 @@ fips_test_clear(void)
 		fclose(info.fp_rd);
 	if (info.fp_wr)
 		fclose(info.fp_wr);
-	if (info.one_line_text)
-		free(info.one_line_text);
+	free(info.one_line_text);
 	if (info.nb_vec_lines) {
 		uint32_t i;
 
examples/fips_validation/main.c +12 -24
index dc40bffe7d97..e06ae37567fd 100644
@@ -143,12 +143,9 @@ cryptodev_fips_validate_app_int(void)
 error_exit:
 
 	rte_mempool_free(env.mpool);
-	if (env.sess_mpool)
-		rte_mempool_free(env.sess_mpool);
-	if (env.sess_priv_mpool)
-		rte_mempool_free(env.sess_priv_mpool);
-	if (env.op_pool)
-		rte_mempool_free(env.op_pool);
+	rte_mempool_free(env.sess_mpool);
+	rte_mempool_free(env.sess_priv_mpool);
+	rte_mempool_free(env.op_pool);
 
 	return ret;
 }
@@ -523,8 +520,7 @@ prepare_data_mbufs(struct fips_val *val)
 	uint16_t nb_seg;
 	int ret = 0;
 
-	if (env.mbuf)
-		rte_pktmbuf_free(env.mbuf);
+	rte_pktmbuf_free(env.mbuf);
 
 	if (total_len > RTE_MBUF_MAX_NB_SEGS) {
 		RTE_LOG(ERR, USER1, "Data len %u too big\n", total_len);
@@ -598,8 +594,7 @@ prepare_data_mbufs(struct fips_val *val)
 	return 0;
 
 error_exit:
-	if (head)
-		rte_pktmbuf_free(head);
+	rte_pktmbuf_free(head);
 	return ret;
 }
 
@@ -656,8 +651,7 @@ prepare_auth_op(void)
 	if (ret < 0)
 		return ret;
 
-	if (env.digest)
-		rte_free(env.digest);
+	rte_free(env.digest);
 
 	env.digest = rte_zmalloc(NULL, vec.cipher_auth.digest.len,
 			RTE_CACHE_LINE_SIZE);
@@ -705,8 +699,7 @@ prepare_aead_op(void)
 		if (ret < 0)
 			return ret;
 
-		if (env.digest)
-			rte_free(env.digest);
+		rte_free(env.digest);
 		env.digest = rte_zmalloc(NULL, vec.aead.digest.len,
 				RTE_CACHE_LINE_SIZE);
 		if (!env.digest) {
@@ -1430,8 +1423,7 @@ fips_mct_tdes_test(void)
 		}
 	}
 
-	if (val.val)
-		free(val.val);
+	free(val.val);
 
 	return 0;
 }
@@ -1510,8 +1502,7 @@ fips_mct_aes_ecb_test(void)
 		}
 	}
 
-	if (val.val)
-		free(val.val);
+	free(val.val);
 
 	return 0;
 }
@@ -1619,8 +1610,7 @@ fips_mct_aes_test(void)
 			memcpy(vec.iv.val, val.val, AES_BLOCK_SIZE);
 	}
 
-	if (val.val)
-		free(val.val);
+	free(val.val);
 
 	return 0;
 }
@@ -1706,8 +1696,7 @@ fips_mct_sha_test(void)
 
 	rte_free(vec.pt.val);
 
-	if (val.val)
-		free(val.val);
+	free(val.val);
 
 	return 0;
 }
@@ -1851,8 +1840,7 @@ fips_test_one_file(void)
 		rte_free(env.digest);
 		env.digest = NULL;
 	}
-	if (env.mbuf)
-		rte_pktmbuf_free(env.mbuf);
+	rte_pktmbuf_free(env.mbuf);
 
 	return ret;
 }
Signature · 1 line
2.30.2
#111 lore raw

PATCH v2 6/83 examples/ip_pipeline: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 examples/ip_pipeline/cli.c       | 12 ++++--------
 examples/ip_pipeline/cryptodev.c |  6 ++----
 examples/ip_pipeline/thread.c    |  6 ++----
 3 files changed, 8 insertions(+), 16 deletions(-)
examples/ip_pipeline/cli.c +4 -8
index 0c372675a919..c918f30e06f3 100644
@@ -3773,10 +3773,8 @@ parse_free_sym_crypto_param_data(struct rte_table_action_sym_crypto_params *p)
 
 		switch (xform[i]->type) {
 		case RTE_CRYPTO_SYM_XFORM_CIPHER:
-			if (p->cipher_auth.cipher_iv.val)
-				free(p->cipher_auth.cipher_iv.val);
-			if (p->cipher_auth.cipher_iv_update.val)
-				free(p->cipher_auth.cipher_iv_update.val);
+			free(p->cipher_auth.cipher_iv.val);
+			free(p->cipher_auth.cipher_iv_update.val);
 			break;
 		case RTE_CRYPTO_SYM_XFORM_AUTH:
 			if (p->cipher_auth.auth_iv.val)
@@ -3785,10 +3783,8 @@ parse_free_sym_crypto_param_data(struct rte_table_action_sym_crypto_params *p)
 				free(p->cipher_auth.cipher_iv_update.val);
 			break;
 		case RTE_CRYPTO_SYM_XFORM_AEAD:
-			if (p->aead.iv.val)
-				free(p->aead.iv.val);
-			if (p->aead.aad.val)
-				free(p->aead.aad.val);
+			free(p->aead.iv.val);
+			free(p->aead.aad.val);
 			break;
 		default:
 			continue;
examples/ip_pipeline/cryptodev.c +2 -4
index 9997d974563f..cd0f9c3d4eac 100644
@@ -151,10 +151,8 @@ cryptodev_create(const char *name, struct cryptodev_params *params)
 	return cryptodev;
 
 error_exit:
-	if (cryptodev->mp_create)
-		rte_mempool_free(cryptodev->mp_create);
-	if (cryptodev->mp_init)
-		rte_mempool_free(cryptodev->mp_init);
+	rte_mempool_free(cryptodev->mp_create);
+	rte_mempool_free(cryptodev->mp_init);
 
 	free(cryptodev);
 
examples/ip_pipeline/thread.c +2 -4
index b2e97327052f..82d5f87c384c 100644
@@ -92,11 +92,9 @@ thread_free(void)
 			continue;
 
 		/* MSGQs */
-		if (t->msgq_req)
-			rte_ring_free(t->msgq_req);
+		rte_ring_free(t->msgq_req);
 
-		if (t->msgq_rsp)
-			rte_ring_free(t->msgq_rsp);
+		rte_ring_free(t->msgq_rsp);
 	}
 }
 
Signature · 1 line
2.30.2
#112 lore raw

PATCH v2 7/83 examples/pipeline/thread: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 examples/pipeline/thread.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
examples/pipeline/thread.c +2 -4
index bf11e6144b75..5fe7eae00eb6 100644
@@ -89,11 +89,9 @@ thread_free(void)
 			continue;
 
 		/* MSGQs */
-		if (t->msgq_req)
-			rte_ring_free(t->msgq_req);
+		rte_ring_free(t->msgq_req);
 
-		if (t->msgq_rsp)
-			rte_ring_free(t->msgq_rsp);
+		rte_ring_free(t->msgq_rsp);
 	}
 }
 
Signature · 1 line
2.30.2
#113 lore raw

PATCH v2 8/83 examples/l2fwd-cat: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 examples/l2fwd-cat/cat.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
examples/l2fwd-cat/cat.c +1 -2
index 502c6b32780e..77154c8b7e61 100644
@@ -872,8 +872,7 @@ cat_fini(void)
 #if PQOS_VERSION <= 103
 	memset(m_sockets, 0, sizeof(m_sockets));
 #else
-	if (m_sockets != NULL)
-		free(m_sockets);
+	free(m_sockets);
 #endif
 	m_sock_count = 0;
 	memset(m_config, 0, sizeof(m_config));
Signature · 1 line
2.30.2
#114 lore raw

PATCH v2 9/83 lib/vhost: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/vhost/iotlb.c        | 3 +--
 lib/vhost/vhost_crypto.c | 6 ++----
 lib/vhost/vhost_user.c   | 9 +++------
 3 files changed, 6 insertions(+), 12 deletions(-)
lib/vhost/iotlb.c +1 -2
index 82bdb84526ea..d6b8c0a396b5 100644
@@ -315,8 +315,7 @@ vhost_user_iotlb_init(struct virtio_net *dev, int vq_index)
 
 	/* If already created, free it and recreate */
 	vq->iotlb_pool = rte_mempool_lookup(pool_name);
-	if (vq->iotlb_pool)
-		rte_mempool_free(vq->iotlb_pool);
+	rte_mempool_free(vq->iotlb_pool);
 
 	vq->iotlb_pool = rte_mempool_create(pool_name,
 			IOTLB_CACHE_SIZE, sizeof(struct vhost_iotlb_entry), 0,
lib/vhost/vhost_crypto.c +2 -4
index 926b5c0bd94a..012e0cefdeba 100644
@@ -1498,10 +1498,8 @@ rte_vhost_crypto_create(int vid, uint8_t cryptodev_id,
 	return 0;
 
 error_exit:
-	if (vcrypto->session_map)
-		rte_hash_free(vcrypto->session_map);
-	if (vcrypto->mbuf_pool)
-		rte_mempool_free(vcrypto->mbuf_pool);
+	rte_hash_free(vcrypto->session_map);
+	rte_mempool_free(vcrypto->mbuf_pool);
 
 	rte_free(vcrypto);
 
lib/vhost/vhost_user.c +3 -6
index 5eb1dd681231..23a0e3fb3600 100644
@@ -489,8 +489,7 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
 	}
 
 	if (vq_is_packed(dev)) {
-		if (vq->shadow_used_packed)
-			rte_free(vq->shadow_used_packed);
+		rte_free(vq->shadow_used_packed);
 		vq->shadow_used_packed = rte_malloc_socket(NULL,
 				vq->size *
 				sizeof(struct vring_used_elem_packed),
@@ -502,8 +501,7 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
 		}
 
 	} else {
-		if (vq->shadow_used_split)
-			rte_free(vq->shadow_used_split);
+		rte_free(vq->shadow_used_split);
 
 		vq->shadow_used_split = rte_malloc_socket(NULL,
 				vq->size * sizeof(struct vring_used_elem),
@@ -516,8 +514,7 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
 		}
 	}
 
-	if (vq->batch_copy_elems)
-		rte_free(vq->batch_copy_elems);
+	rte_free(vq->batch_copy_elems);
 	vq->batch_copy_elems = rte_malloc_socket(NULL,
 				vq->size * sizeof(struct batch_copy_elem),
 				RTE_CACHE_LINE_SIZE, vq->numa_node);
Signature · 1 line
2.30.2
Reviewed-by on v2 9/83
#115 lore raw

RE: [PATCH v2 09/83] lib/vhost: remove unnecessary NULL checks

Hi Stephen,

Quoted 7 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Tuesday, January 25, 2022 1:46 AM
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Maxime Coquelin <[email protected]>; Xia, Chenbo <[email protected]>
Subject: [PATCH v2 09/83] lib/vhost: remove unnecessary NULL checks

Title should be: vhost: remove unnecessary NULL checks

With this fixed:

Quoted 78 lines

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/vhost/iotlb.c        | 3 +--
 lib/vhost/vhost_crypto.c | 6 ++----
 lib/vhost/vhost_user.c   | 9 +++------
 3 files changed, 6 insertions(+), 12 deletions(-)
lib/vhost/iotlb.c +1 -2
index 82bdb84526ea..d6b8c0a396b5 100644
@@ -315,8 +315,7 @@ vhost_user_iotlb_init(struct virtio_net *dev, int vq_index)
 
 	/* If already created, free it and recreate */
 	vq->iotlb_pool = rte_mempool_lookup(pool_name);
-	if (vq->iotlb_pool)
-		rte_mempool_free(vq->iotlb_pool);
+	rte_mempool_free(vq->iotlb_pool);
 
 	vq->iotlb_pool = rte_mempool_create(pool_name,
 			IOTLB_CACHE_SIZE, sizeof(struct vhost_iotlb_entry), 0,
lib/vhost/vhost_crypto.c +2 -4
index 926b5c0bd94a..012e0cefdeba 100644
@@ -1498,10 +1498,8 @@ rte_vhost_crypto_create(int vid, uint8_t cryptodev_id,
 	return 0;
 
 error_exit:
-	if (vcrypto->session_map)
-		rte_hash_free(vcrypto->session_map);
-	if (vcrypto->mbuf_pool)
-		rte_mempool_free(vcrypto->mbuf_pool);
+	rte_hash_free(vcrypto->session_map);
+	rte_mempool_free(vcrypto->mbuf_pool);
 
 	rte_free(vcrypto);
 
lib/vhost/vhost_user.c +3 -7
index 5eb1dd681231..23a0e3fb3600 100644
@@ -489,8 +489,7 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
 	}
 
 	if (vq_is_packed(dev)) {
-		if (vq->shadow_used_packed)
-			rte_free(vq->shadow_used_packed);
+		rte_free(vq->shadow_used_packed);
 		vq->shadow_used_packed = rte_malloc_socket(NULL,
 				vq->size *
 				sizeof(struct vring_used_elem_packed),
@@ -502,8 +501,7 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
 		}
 
 	} else {
-		if (vq->shadow_used_split)
-			rte_free(vq->shadow_used_split);
+		rte_free(vq->shadow_used_split);
 
 		vq->shadow_used_split = rte_malloc_socket(NULL,
 				vq->size * sizeof(struct vring_used_elem),
@@ -516,8 +514,7 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
 		}
 	}
 
-	if (vq->batch_copy_elems)
-		rte_free(vq->batch_copy_elems);
+	rte_free(vq->batch_copy_elems);
 	vq->batch_copy_elems = rte_malloc_socket(NULL,
 				vq->size * sizeof(struct batch_copy_elem),
 				RTE_CACHE_LINE_SIZE, vq->numa_node);
--

2.30.2

#116 lore raw

PATCH v2 10/83 examples/vhost_blk: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 examples/vhost_blk/vhost_blk.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
examples/vhost_blk/vhost_blk.c +1 -2
index feadacc62ee5..2cab1e6994fe 100644
@@ -849,8 +849,7 @@ static void
 vhost_blk_ctrlr_destroy(struct vhost_blk_ctrlr *ctrlr)
 {
 	if (ctrlr->bdev != NULL) {
-		if (ctrlr->bdev->data != NULL)
-			rte_free(ctrlr->bdev->data);
+		rte_free(ctrlr->bdev->data);
 
 		rte_free(ctrlr->bdev);
 	}
Signature · 1 line
2.30.2
Reviewed-by on v2 10/83
#117 lore raw

RE: [PATCH v2 10/83] examples/vhost_blk: remove unnecessary NULL checks

Quoted 31 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Tuesday, January 25, 2022 1:46 AM
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Maxime Coquelin <[email protected]>; Xia, Chenbo <[email protected]>
Subject: [PATCH v2 10/83] examples/vhost_blk: remove unnecessary NULL checks

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 examples/vhost_blk/vhost_blk.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
examples/vhost_blk/vhost_blk.c +1 -3
index feadacc62ee5..2cab1e6994fe 100644
@@ -849,8 +849,7 @@ static void
 vhost_blk_ctrlr_destroy(struct vhost_blk_ctrlr *ctrlr)
 {
 	if (ctrlr->bdev != NULL) {
-		if (ctrlr->bdev->data != NULL)
-			rte_free(ctrlr->bdev->data);
+		rte_free(ctrlr->bdev->data);
 
 		rte_free(ctrlr->bdev);
 	}
--
Quoted 1 line

2.30.2

#118 lore raw

PATCH v2 11/83 app/pdump: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 app/pdump/main.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
app/pdump/main.c +3 -6
index 46f9d25db004..04a38e891119 100644
@@ -502,14 +502,11 @@ cleanup_rings(void)
 	for (i = 0; i < num_tuples; i++) {
 		pt = &pdump_t[i];
 
-		if (pt->device_id)
-			free(pt->device_id);
+		free(pt->device_id);
 
 		/* free the rings */
-		if (pt->rx_ring)
-			rte_ring_free(pt->rx_ring);
-		if (pt->tx_ring)
-			rte_ring_free(pt->tx_ring);
+		rte_ring_free(pt->rx_ring);
+		rte_ring_free(pt->tx_ring);
 	}
 }
 
Signature · 1 line
2.30.2
#119 lore raw

PATCH v2 12/83 app/test-crypto-perf: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 app/test-crypto-perf/cperf_test_latency.c        | 3 +--
 app/test-crypto-perf/cperf_test_pmd_cyclecount.c | 9 +++------
 app/test-crypto-perf/cperf_test_throughput.c     | 3 +--
 app/test-crypto-perf/cperf_test_vector_parsing.c | 6 ++----
 app/test-crypto-perf/cperf_test_verify.c         | 3 +--
 5 files changed, 8 insertions(+), 16 deletions(-)
app/test-crypto-perf/cperf_test_latency.c +1 -2
index ce49feaba9f3..4c7bc72eb5fd 100644
@@ -49,8 +49,7 @@ cperf_latency_test_free(struct cperf_latency_ctx *ctx)
 			rte_cryptodev_sym_session_free(ctx->sess);
 		}
 
-		if (ctx->pool)
-			rte_mempool_free(ctx->pool);
+		rte_mempool_free(ctx->pool);
 
 		rte_free(ctx->res);
 		rte_free(ctx);
app/test-crypto-perf/cperf_test_pmd_cyclecount.c +3 -6
index 5842f29d43e2..6b4d09e623eb 100644
@@ -79,14 +79,11 @@ cperf_pmd_cyclecount_test_free(struct cperf_pmd_cyclecount_ctx *ctx)
 		}
 	}
 
-	if (ctx->pool)
-		rte_mempool_free(ctx->pool);
+	rte_mempool_free(ctx->pool);
 
-	if (ctx->ops)
-		rte_free(ctx->ops);
+	rte_free(ctx->ops);
 
-	if (ctx->ops_processed)
-		rte_free(ctx->ops_processed);
+	rte_free(ctx->ops_processed);
 
 	rte_free(ctx);
 }
app/test-crypto-perf/cperf_test_throughput.c +1 -2
index 51512af2ad81..51fad5a05505 100644
@@ -57,8 +57,7 @@ cperf_throughput_test_free(struct cperf_throughput_ctx *ctx)
 			rte_cryptodev_sym_session_free(ctx->sess);
 		}
 	}
-	if (ctx->pool)
-		rte_mempool_free(ctx->pool);
+	rte_mempool_free(ctx->pool);
 
 	rte_free(ctx);
 }
app/test-crypto-perf/cperf_test_vector_parsing.c +2 -4
index 1e9dfcfff087..87f3a90055aa 100644
@@ -551,10 +551,8 @@ parse_file(struct cperf_test_vector *vector, struct cperf_options *opts)
 err:
 	if (fp)
 		fclose(fp);
-	if (line)
-		free(line);
-	if (entry)
-		rte_free(entry);
+	free(line);
+	rte_free(entry);
 
 	return -1;
 }
app/test-crypto-perf/cperf_test_verify.c +1 -2
index 496eb0de00f0..c031330afcfe 100644
@@ -42,8 +42,7 @@ cperf_verify_test_free(struct cperf_verify_ctx *ctx)
 			rte_cryptodev_sym_session_free(ctx->sess);
 		}
 
-		if (ctx->pool)
-			rte_mempool_free(ctx->pool);
+		rte_mempool_free(ctx->pool);
 
 		rte_free(ctx);
 	}
Signature · 1 line
2.30.2
#120 lore raw

PATCH v2 13/83 app/test-pmd: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 app/test-pmd/cmd_flex_item.c | 3 +--
 app/test-pmd/cmdline.c       | 3 +--
 app/test-pmd/testpmd.c       | 3 +--
 3 files changed, 3 insertions(+), 6 deletions(-)
app/test-pmd/cmd_flex_item.c +1 -2
index 908bcb3f47f8..9050825a81d7 100644
@@ -364,8 +364,7 @@ flex_item_create(portid_t port_id, uint16_t flex_id, const char *filename)
 		       flow_error.message ? flow_error.message : "");
 	}
 out:
-	if (fp)
-		free(fp);
+	free(fp);
 }
 
 #else /* RTE_HAS_JANSSON */
app/test-pmd/cmdline.c +1 -2
index e626b1c7d9ee..298a594e709b 100644
@@ -14696,8 +14696,7 @@ cmd_ddp_info_parsed(
 
 	ret = 0;
 no_print_return:
-	if (proto)
-		free(proto);
+	free(proto);
 #endif
 	if (ret == -ENOTSUP)
 		fprintf(stderr, "Function not supported in PMD\n");
app/test-pmd/testpmd.c +1 -2
index 6c387bde84e5..31efa0fe61e5 100644
@@ -902,8 +902,7 @@ create_extmem(uint32_t nb_mbufs, uint32_t mbuf_sz, struct extmem_param *param,
 
 	return 0;
 fail:
-	if (iovas)
-		free(iovas);
+	free(iovas);
 	if (addr)
 		munmap(addr, mem_sz);
 
Signature · 1 line
2.30.2
#121 lore raw

PATCH v2 14/83 app/test-regex: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 app/test-regex/main.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)
app/test-regex/main.c +4 -8
index 8e665df73ce0..ab8a3e56e774 100644
@@ -210,8 +210,7 @@ read_file(char *file, char **buf)
 	printf("Error, can't open file %s\n, err = %d", file, res);
 	if (fp)
 		fclose(fp);
-	if (*buf)
-		rte_free(*buf);
+	rte_free(*buf);
 	return -res;
 }
 
@@ -299,8 +298,7 @@ init_port(uint16_t *nb_max_payload, char *rules_file, uint8_t *nb_max_matches,
 	rte_free(rules);
 	return 0;
 error:
-	if (rules)
-		rte_free(rules);
+	rte_free(rules);
 	return res;
 }
 
@@ -367,8 +365,7 @@ regex_create_segmented_mbuf(struct rte_mempool *mbuf_pool, int pkt_len,
 	return mbuf;
 
 fail:
-	if (mbuf)
-		rte_pktmbuf_free(mbuf);
+	rte_pktmbuf_free(mbuf);
 	return NULL;
 }
 
@@ -612,8 +609,7 @@ run_regex(void *args)
 		rte_free(qp->buf);
 		qp->buf = NULL;
 	}
-	if (mbuf_mp)
-		rte_mempool_free(mbuf_mp);
+	rte_mempool_free(mbuf_mp);
 	rte_free(qps);
 	return res;
 }
Signature · 1 line
2.30.2
#122 lore raw

PATCH v2 15/83 app/test: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 app/test/test_cksum.c                 |  3 +-
 app/test/test_compressdev.c           |  3 +-
 app/test/test_cryptodev.h             |  3 +-
 app/test/test_cryptodev_asym.c        |  3 +-
 app/test/test_cryptodev_blockcipher.c | 12 +++----
 app/test/test_func_reentrancy.c       | 15 +++------
 app/test/test_hash.c                  | 15 +++------
 app/test/test_hash_perf.c             |  7 +----
 app/test/test_link_bonding.c          |  9 ++----
 app/test/test_link_bonding_mode4.c    |  3 +-
 app/test/test_malloc.c                |  5 ++-
 app/test/test_mbuf.c                  | 45 +++++++++------------------
 app/test/test_pcapng.c                |  3 +-
 app/test/test_reorder.c               | 15 +++------
 app/test/virtual_pmd.c                |  3 +-
 15 files changed, 47 insertions(+), 97 deletions(-)
app/test/test_cksum.c +1 -2
index cd983d7c01ce..6c15de9a9312 100644
@@ -218,8 +218,7 @@ test_l4_cksum(struct rte_mempool *pktmbuf_pool, const char *pktdata, size_t len)
 	return 0;
 
 fail:
-	if (m)
-		rte_pktmbuf_free(m);
+	rte_pktmbuf_free(m);
 
 	return -1;
 }
app/test/test_compressdev.c +1 -2
index 57c566aa9229..fbecaf9aaad4 100644
@@ -2144,8 +2144,7 @@ test_deflate_comp_decomp(const struct interim_data_params *int_data,
 
 	if (stream != NULL)
 		rte_compressdev_stream_free(0, stream);
-	if (all_decomp_data != NULL)
-		rte_free(all_decomp_data);
+	rte_free(all_decomp_data);
 
 	/* Free compress private xforms */
 	for (i = 0; i < test_priv_data.num_priv_xforms; i++) {
app/test/test_cryptodev.h +1 -2
index 70f23a3f67d0..29a7d4db2b10 100644
@@ -230,8 +230,7 @@ create_segmented_mbuf(struct rte_mempool *mbuf_pool, int pkt_len,
 	return mbuf;
 
 fail:
-	if (mbuf)
-		rte_pktmbuf_free(mbuf);
+	rte_pktmbuf_free(mbuf);
 	return NULL;
 }
 
app/test/test_cryptodev_asym.c +1 -2
index 68f4d8e7a6f9..8c68a12d74b2 100644
@@ -518,8 +518,7 @@ test_cryptodev_asym_op(struct crypto_testsuite_params_asym *ts_params,
 		if (op != NULL)
 			rte_crypto_op_free(op);
 
-		if (result != NULL)
-			rte_free(result);
+		rte_free(result);
 
 	return status;
 }
app/test/test_cryptodev_blockcipher.c +4 -8
index 5688a45377b2..127e2a53d379 100644
@@ -805,20 +805,16 @@ test_blockcipher_one_case(const struct blockcipher_test_case *t,
 			rte_cryptodev_sym_session_clear(dev_id, sess);
 			rte_cryptodev_sym_session_free(sess);
 		}
-		if (cipher_xform)
-			rte_free(cipher_xform);
-		if (auth_xform)
-			rte_free(auth_xform);
+		rte_free(cipher_xform);
+		rte_free(auth_xform);
 	}
 
 	if (op)
 		rte_crypto_op_free(op);
 
-	if (obuf)
-		rte_pktmbuf_free(obuf);
+	rte_pktmbuf_free(obuf);
 
-	if (ibuf)
-		rte_pktmbuf_free(ibuf);
+	rte_pktmbuf_free(ibuf);
 
 	return status;
 }
app/test/test_func_reentrancy.c +5 -10
index ce40c3ce9631..64f27e20370f 100644
@@ -89,15 +89,13 @@ ring_clean(unsigned int lcore_id)
 	int i;
 
 	rp = rte_ring_lookup("fr_test_once");
-	if (rp != NULL)
-		rte_ring_free(rp);
+	rte_ring_free(rp);
 
 	for (i = 0; i < MAX_ITER_MULTI; i++) {
 		snprintf(ring_name, sizeof(ring_name),
 				"fr_test_%d_%d", lcore_id, i);
 		rp = rte_ring_lookup(ring_name);
-		if (rp != NULL)
-			rte_ring_free(rp);
+		rte_ring_free(rp);
 	}
 }
 
@@ -152,15 +150,13 @@ mempool_clean(unsigned int lcore_id)
 	int i;
 
 	mp = rte_mempool_lookup("fr_test_once");
-	if (mp != NULL)
-		rte_mempool_free(mp);
+	rte_mempool_free(mp);
 
 	for (i = 0; i < MAX_ITER_MULTI; i++) {
 		snprintf(mempool_name, sizeof(mempool_name), "fr_test_%d_%d",
 			 lcore_id, i);
 		mp = rte_mempool_lookup(mempool_name);
-		if (mp != NULL)
-			rte_mempool_free(mp);
+		rte_mempool_free(mp);
 	}
 }
 
@@ -215,8 +211,7 @@ hash_clean(unsigned lcore_id)
 	int i;
 
 	handle = rte_hash_find_existing("fr_test_once");
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	for (i = 0; i < MAX_ITER_MULTI; i++) {
 		snprintf(hash_name, sizeof(hash_name), "fr_test_%d_%d",  lcore_id, i);
app/test/test_hash.c +5 -10
index b99e8de1db71..d522cb7f8cbf 100644
@@ -1654,8 +1654,7 @@ test_hash_add_delete_jhash2(void)
 	ret = 0;
 
 fail_jhash2:
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	return ret;
 }
@@ -1689,8 +1688,7 @@ test_hash_add_delete_2_jhash2(void)
 	ret = 0;
 
 fail_2_jhash2:
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	return ret;
 }
@@ -1754,8 +1752,7 @@ test_hash_add_delete_jhash_1word(void)
 	ret = 0;
 
 fail_jhash_1word:
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	return ret;
 }
@@ -1789,8 +1786,7 @@ test_hash_add_delete_jhash_2word(void)
 	ret = 0;
 
 fail_jhash_2word:
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	return ret;
 }
@@ -1824,8 +1820,7 @@ test_hash_add_delete_jhash_3word(void)
 	ret = 0;
 
 fail_jhash_3word:
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	return ret;
 }
app/test/test_hash_perf.c +1 -6
index 76cdac5d5320..287f486316f1 100644
@@ -106,12 +106,7 @@ create_table(unsigned int with_data, unsigned int table_index,
 	ut_params.key_len = hashtest_key_lens[table_index];
 	ut_params.socket_id = rte_socket_id();
 	h[table_index] = rte_hash_find_existing(name);
-	if (h[table_index] != NULL)
-		/*
-		 * If table was already created, free it to create it again,
-		 * so we force it is empty
-		 */
-		rte_hash_free(h[table_index]);
+	rte_hash_free(h[table_index]);
 	h[table_index] = rte_hash_create(&ut_params);
 	if (h[table_index] == NULL) {
 		printf("Error creating table\n");
app/test/test_link_bonding.c +3 -6
index dc6fc46b9c93..82a9b8e01a82 100644
@@ -1639,8 +1639,7 @@ test_roundrobin_rx_burst_on_single_slave(void)
 
 	/* free mbufs */
 	for (i = 0; i < MAX_PKT_BURST; i++) {
-		if (rx_pkt_burst[i] != NULL)
-			rte_pktmbuf_free(rx_pkt_burst[i]);
+		rte_pktmbuf_free(rx_pkt_burst[i]);
 	}
 
 
@@ -1722,8 +1721,7 @@ test_roundrobin_rx_burst_on_multiple_slaves(void)
 
 	/* free mbufs */
 	for (i = 0; i < MAX_PKT_BURST; i++) {
-		if (rx_pkt_burst[i] != NULL)
-			rte_pktmbuf_free(rx_pkt_burst[i]);
+		rte_pktmbuf_free(rx_pkt_burst[i]);
 	}
 
 	/* Clean up and remove slaves from bonded device */
@@ -2010,8 +2008,7 @@ test_roundrobin_verify_slave_link_status_change_behaviour(void)
 
 	/* free mbufs */
 	for (i = 0; i < MAX_PKT_BURST; i++) {
-		if (rx_pkt_burst[i] != NULL)
-			rte_pktmbuf_free(rx_pkt_burst[i]);
+		rte_pktmbuf_free(rx_pkt_burst[i]);
 	}
 
 	/* Clean up and remove slaves from bonded device */
app/test/test_link_bonding_mode4.c +1 -2
index 351129de2f9b..d9b9c323c7f8 100644
@@ -194,8 +194,7 @@ free_pkts(struct rte_mbuf **pkts, uint16_t count)
 	uint16_t i;
 
 	for (i = 0; i < count; i++) {
-		if (pkts[i] != NULL)
-			rte_pktmbuf_free(pkts[i]);
+		rte_pktmbuf_free(pkts[i]);
 	}
 }
 
app/test/test_malloc.c +2 -3
index 6d9249f831be..d424d7808af3 100644
@@ -812,7 +812,7 @@ test_zero_aligned_alloc(void)
 
 err_return:
 	/*clean up */
-	if (p1) rte_free(p1);
+	rte_free(p1);
 	return -1;
 }
 
@@ -865,8 +865,7 @@ test_malloc_bad_params(void)
 
 err_return:
 	/* clean up pointer */
-	if (bad_ptr)
-		rte_free(bad_ptr);
+	rte_free(bad_ptr);
 	return -1;
 }
 
app/test/test_mbuf.c +15 -30

99 lines not on this page · raw message

app/test/test_pcapng.c +1 -2
index 34c5e1234695..320dacea3498 100644
@@ -240,8 +240,7 @@ test_validate(void)
 static void
 test_cleanup(void)
 {
-	if (mp)
-		rte_mempool_free(mp);
+	rte_mempool_free(mp);
 
 	if (pcapng)
 		rte_pcapng_close(pcapng);
app/test/test_reorder.c +5 -10
index 1c4226da6501..962c31953f91 100644
@@ -208,8 +208,7 @@ test_reorder_insert(void)
 exit:
 	rte_reorder_free(b);
 	for (i = 0; i < num_bufs; i++) {
-		if (bufs[i] != NULL)
-			rte_pktmbuf_free(bufs[i]);
+		rte_pktmbuf_free(bufs[i]);
 	}
 	return ret;
 }
@@ -268,8 +267,7 @@ test_reorder_drain(void)
 		ret = -1;
 		goto exit;
 	}
-	if (robufs[0] != NULL)
-		rte_pktmbuf_free(robufs[0]);
+	rte_pktmbuf_free(robufs[0]);
 
 	/* Insert more packets
 	 * RB[] = {NULL, NULL, NULL, NULL}
@@ -303,8 +301,7 @@ test_reorder_drain(void)
 		goto exit;
 	}
 	for (i = 0; i < 3; i++) {
-		if (robufs[i] != NULL)
-			rte_pktmbuf_free(robufs[i]);
+		rte_pktmbuf_free(robufs[i]);
 	}
 
 	/*
@@ -322,10 +319,8 @@ test_reorder_drain(void)
 exit:
 	rte_reorder_free(b);
 	for (i = 0; i < num_bufs; i++) {
-		if (bufs[i] != NULL)
-			rte_pktmbuf_free(bufs[i]);
-		if (robufs[i] != NULL)
-			rte_pktmbuf_free(robufs[i]);
+		rte_pktmbuf_free(bufs[i]);
+		rte_pktmbuf_free(robufs[i]);
 	}
 	return ret;
 }
app/test/virtual_pmd.c +1 -2
index 3d2793852049..cd4611ab48df 100644
@@ -397,8 +397,7 @@ virtual_ethdev_tx_burst_fail(void *queue, struct rte_mbuf **bufs,
 		/* free packets in burst */
 		for (i = 0; i < successfully_txd; i++) {
 			/* free packets in burst */
-			if (bufs[i] != NULL)
-				rte_pktmbuf_free(bufs[i]);
+			rte_pktmbuf_free(bufs[i]);
 
 			bufs[i] = NULL;
 		}
Signature · 1 line
2.30.2
#123 lore raw

PATCH v2 16/83 baseband/acc100 remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/baseband/acc100/rte_acc100_pmd.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/baseband/acc100/rte_acc100_pmd.c +1 -2
index 1c6080f2f895..f86474f7e099 100644
@@ -4402,8 +4402,7 @@ poweron_cleanup(struct rte_bbdev *bbdev, struct acc100_device *d,
 	}
 	printf("Number of 5GUL engines %d\n", numEngines);
 
-	if (d->sw_rings_base != NULL)
-		rte_free(d->sw_rings_base);
+	rte_free(d->sw_rings_base);
 	usleep(ACC100_LONG_WAIT);
 }
 
Signature · 1 line
2.30.2
#124 lore raw

PATCH v2 17/83 baseband/la12xx remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/baseband/la12xx/bbdev_la12xx.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/baseband/la12xx/bbdev_la12xx.c +1 -2
index 4b05b5d3f2a6..4d1bd16751fe 100644
@@ -975,8 +975,7 @@ parse_bbdev_la12xx_params(struct bbdev_la12xx_params *params,
 	}
 
 exit:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
+	rte_kvargs_free(kvlist);
 	return ret;
 }
 
Signature · 1 line
2.30.2
#125 lore raw

PATCH v2 18/83 baseband/null remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/baseband/null/bbdev_null.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/baseband/null/bbdev_null.c +1 -2
index 08cff582b99d..248e12987f03 100644
@@ -251,8 +251,7 @@ parse_bbdev_null_params(struct bbdev_null_params *params,
 	}
 
 exit:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
+	rte_kvargs_free(kvlist);
 	return ret;
 }
 
Signature · 1 line
2.30.2
#126 lore raw

PATCH v2 19/83 baseband/turbo_sw remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/baseband/turbo_sw/bbdev_turbo_software.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/baseband/turbo_sw/bbdev_turbo_software.c +1 -2
index c6b1eb8679cb..af7bc416f92e 100644
@@ -1918,8 +1918,7 @@ parse_turbo_sw_params(struct turbo_sw_params *params, const char *input_args)
 	}
 
 exit:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
+	rte_kvargs_free(kvlist);
 	return ret;
 }
 
Signature · 1 line
2.30.2
#127 lore raw

PATCH v2 20/83 bus/fslmc: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/bus/fslmc/fslmc_bus.c            | 6 ++----
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 6 ++----
 2 files changed, 4 insertions(+), 8 deletions(-)
drivers/bus/fslmc/fslmc_bus.c +2 -4
index 53fd75539e98..30d019516b91 100644
@@ -223,13 +223,11 @@ scan_one_fslmc_device(char *dev_name)
 	insert_in_device_list(dev);
 
 	/* Don't need the duplicated device filesystem entry anymore */
-	if (dup_dev_name)
-		free(dup_dev_name);
+	free(dup_dev_name);
 
 	return 0;
 cleanup:
-	if (dup_dev_name)
-		free(dup_dev_name);
+	free(dup_dev_name);
 	if (dev) {
 		rte_intr_instance_free(dev->intr_handle);
 		free(dev);
drivers/bus/fslmc/portal/dpaa2_hw_dpio.c +2 -4
index 52605ea2c32c..943fadee4816 100644
@@ -149,8 +149,7 @@ dpaa2_affine_dpio_intr_to_respective_core(int32_t dpio_id, int cpu_id)
 	if (!token) {
 		DPAA2_BUS_WARN("Failed to get interrupt id for dpio.%d",
 			       dpio_id);
-		if (temp)
-			free(temp);
+		free(temp);
 		fclose(file);
 		return;
 	}
@@ -574,8 +573,7 @@ dpaa2_free_dq_storage(struct queue_storage_info_t *q_storage)
 	int i = 0;
 
 	for (i = 0; i < NUM_DQS_PER_QUEUE; i++) {
-		if (q_storage->dq_storage[i])
-			rte_free(q_storage->dq_storage[i]);
+		rte_free(q_storage->dq_storage[i]);
 	}
 }
 
Signature · 1 line
2.30.2
#128 lore raw

PATCH v2 21/83 bus/ifpga: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/bus/ifpga/ifpga_bus.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)
drivers/bus/ifpga/ifpga_bus.c +4 -8
index c5c8bbd57219..e005f2cb70b3 100644
@@ -191,10 +191,8 @@ ifpga_scan_one(struct rte_rawdev *rawdev,
 	return afu_dev;
 
 end:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
-	if (path)
-		free(path);
+	rte_kvargs_free(kvlist);
+	free(path);
 	if (afu_dev) {
 		rte_intr_instance_free(afu_dev->intr_handle);
 		free(afu_dev);
@@ -254,10 +252,8 @@ ifpga_scan(void)
 	}
 
 end:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
-	if (name)
-		free(name);
+	rte_kvargs_free(kvlist);
+	free(name);
 
 	return 0;
 }
Signature · 1 line
2.30.2
#129 lore raw

PATCH v2 22/83 bus/pci: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/bus/pci/pci_params.c         | 3 +--
 drivers/bus/pci/windows/pci.c        | 3 +--
 drivers/bus/pci/windows/pci_netuio.c | 3 +--
 3 files changed, 3 insertions(+), 6 deletions(-)
drivers/bus/pci/pci_params.c +1 -2
index 60b424b8297e..61a868707f16 100644
@@ -117,8 +117,7 @@ rte_pci_devargs_parse(struct rte_devargs *da)
 	rte_pci_device_name(&addr, da->name, sizeof(da->name));
 
 out:
-	if (kvargs != NULL)
-		rte_kvargs_free(kvargs);
+	rte_kvargs_free(kvargs);
 	if (ret != 0)
 		rte_errno = -ret;
 	return ret;
drivers/bus/pci/windows/pci.c +1 -2
index 39ba31be7d38..7bf091158ba2 100644
@@ -418,8 +418,7 @@ pci_scan_one(HDEVINFO dev_info, PSP_DEVINFO_DATA device_info_data)
 
 	return 0;
 end:
-	if (dev)
-		free(dev);
+	free(dev);
 	return ret;
 }
 
drivers/bus/pci/windows/pci_netuio.c +1 -2
index a0b175a8fca0..5460399eea5f 100644
@@ -180,8 +180,7 @@ get_netuio_device_info(HDEVINFO dev_info, PSP_DEVINFO_DATA dev_info_data,
 			CloseHandle(netuio);
 	}
 
-	if (dev_ifx_detail)
-		free(dev_ifx_detail);
+	free(dev_ifx_detail);
 
 	if (di_set != INVALID_HANDLE_VALUE)
 		SetupDiDestroyDeviceInfoList(di_set);
Signature · 1 line
2.30.2
#130 lore raw

PATCH v2 23/83 common/cpt: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/common/cpt/cpt_ucode_asym.h | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/common/cpt/cpt_ucode_asym.h +2 -4
index f0b5dddd8cdf..f5d91f2583bd 100644
@@ -192,13 +192,11 @@ cpt_free_asym_session_parameters(struct cpt_asym_sess_misc *sess)
 	switch (sess->xfrm_type) {
 	case RTE_CRYPTO_ASYM_XFORM_RSA:
 		rsa = &sess->rsa_ctx;
-		if (rsa->n.data)
-			rte_free(rsa->n.data);
+		rte_free(rsa->n.data);
 		break;
 	case RTE_CRYPTO_ASYM_XFORM_MODEX:
 		mod = &sess->mod_ctx;
-		if (mod->modulus.data)
-			rte_free(mod->modulus.data);
+		rte_free(mod->modulus.data);
 		break;
 	case RTE_CRYPTO_ASYM_XFORM_ECDSA:
 		/* Fall through */
Signature · 1 line
2.30.2
#131 lore raw

PATCH v2 24/83 common/dpaax: simplify kernel compat macros

In reply to Stephen Hemminger

The compat wrapper had unnecessary NULL check and also the emulation of kzalloc() should just use equivalent rte_zmalloc().

---
 drivers/common/dpaax/compat.h | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)
drivers/common/dpaax/compat.h +2 -9
index 7166f8cceb41..cbabc1588b21 100644
@@ -339,16 +339,9 @@ static inline void copy_bytes(void *dest, const void *src, size_t sz)
 
 /* Allocator stuff */
 #define kmalloc(sz, t)	rte_malloc(NULL, sz, 0)
+#define kzalloc(sz, t)  rte_zmalloc(NULL, sz, 0)
 #define vmalloc(sz)	rte_malloc(NULL, sz, 0)
-#define kfree(p)	{ if (p) rte_free(p); }
-static inline void *kzalloc(size_t sz, gfp_t __foo __rte_unused)
-{
-	void *ptr = rte_malloc(NULL, sz, 0);
-
-	if (ptr)
-		memset(ptr, 0, sz);
-	return ptr;
-}
+#define kfree(p)	rte_free(p)
 
 static inline unsigned long get_zeroed_page(gfp_t __foo __rte_unused)
 {
Signature · 1 line
2.30.2
#132 lore raw

PATCH v2 25/83 common/mlx5: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/common/mlx5/mlx5_common_mr.c  | 3 +--
 drivers/common/mlx5/mlx5_common_pci.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)
drivers/common/mlx5/mlx5_common_mr.c +1 -2
index 1537b5d42879..07f76a10655f 100644
@@ -516,8 +516,7 @@ mlx5_mr_free(struct mlx5_mr *mr, mlx5_dereg_mr_t dereg_mr_cb)
 		return;
 	DRV_LOG(DEBUG, "freeing MR(%p):", (void *)mr);
 	dereg_mr_cb(&mr->pmd_mr);
-	if (mr->ms_bmp != NULL)
-		rte_bitmap_free(mr->ms_bmp);
+	rte_bitmap_free(mr->ms_bmp);
 	mlx5_free(mr);
 }
 
drivers/common/mlx5/mlx5_common_pci.c +1 -2
index 8b38091d8741..458630351cd1 100644
@@ -97,8 +97,7 @@ pci_ids_table_update(const struct rte_pci_id *driver_id_table)
 	updated_table[i].vendor_id = 0;
 	mlx5_common_pci_driver.id_table = updated_table;
 	mlx5_pci_id_table = updated_table;
-	if (old_table)
-		free(old_table);
+	free(old_table);
 	return 0;
 }
 
Signature · 1 line
2.30.2
#133 lore raw

PATCH v2 26/83 common/qat: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/common/qat/qat_qp.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
drivers/common/qat/qat_qp.c +3 -6
index cde421eb7716..57ac8fefca3d 100644
@@ -175,11 +175,9 @@ qat_qp_setup(struct qat_pci_device *qat_dev,
 
 create_err:
 	if (qp) {
-		if (qp->op_cookie_pool)
-			rte_mempool_free(qp->op_cookie_pool);
+		rte_mempool_free(qp->op_cookie_pool);
 
-		if (qp->op_cookies)
-			rte_free(qp->op_cookies);
+		rte_free(qp->op_cookies);
 
 		rte_free(qp);
 	}
@@ -329,8 +327,7 @@ qat_qp_release(enum qat_device_gen qat_dev_gen, struct qat_qp **qp_addr)
 	for (i = 0; i < qp->nb_descriptors; i++)
 		rte_mempool_put(qp->op_cookie_pool, qp->op_cookies[i]);
 
-	if (qp->op_cookie_pool)
-		rte_mempool_free(qp->op_cookie_pool);
+	rte_mempool_free(qp->op_cookie_pool);
 
 	rte_free(qp->op_cookies);
 	rte_free(qp);
Signature · 1 line
2.30.2
#134 lore raw

PATCH v2 27/83 compress/mlx5: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/compress/mlx5/mlx5_compress.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/compress/mlx5/mlx5_compress.c +1 -2
index 82b871bd860a..b12951da8b51 100644
@@ -146,8 +146,7 @@ mlx5_compress_qp_release(struct rte_compressdev *dev, uint16_t qp_id)
 		void *opaq = qp->opaque_mr.addr;
 
 		mlx5_common_verbs_dereg_mr(&qp->opaque_mr);
-		if (opaq != NULL)
-			rte_free(opaq);
+		rte_free(opaq);
 	}
 	mlx5_mr_btree_free(&qp->mr_ctrl.cache_bh);
 	rte_free(qp);
Signature · 1 line
2.30.2
#135 lore raw

PATCH v2 28/83 compress/octeontx: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/compress/octeontx/otx_zip_pmd.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
drivers/compress/octeontx/otx_zip_pmd.c +3 -6
index dd62285b863e..26cdce60a859 100644
@@ -337,8 +337,7 @@ zip_pmd_qp_release(struct rte_compressdev *dev, uint16_t qp_id)
 	if (qp != NULL) {
 		zipvf_q_term(qp);
 
-		if (qp->processed_pkts)
-			rte_ring_free(qp->processed_pkts);
+		rte_ring_free(qp->processed_pkts);
 
 		rte_free(qp);
 		dev->data->queue_pairs[qp_id] = NULL;
@@ -423,10 +422,8 @@ zip_pmd_qp_setup(struct rte_compressdev *dev, uint16_t qp_id,
 	return 0;
 
 qp_setup_cleanup:
-	if (qp->processed_pkts)
-		rte_ring_free(qp->processed_pkts);
-	if (qp)
-		rte_free(qp);
+	rte_ring_free(qp->processed_pkts);
+	rte_free(qp);
 	return -1;
 }
 
Signature · 1 line
2.30.2
#136 lore raw

PATCH v2 29/83 crypto/armv8: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/armv8/rte_armv8_pmd_ops.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/crypto/armv8/rte_armv8_pmd_ops.c +1 -2
index 1b2749fe62c6..c07ac0489e57 100644
@@ -251,8 +251,7 @@ armv8_crypto_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
 	return 0;
 
 qp_setup_cleanup:
-	if (qp)
-		rte_free(qp);
+	rte_free(qp);
 
 	return -1;
 }
Signature · 1 line
2.30.2
#137 lore raw

PATCH v2 30/83 crypto/ccp: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/ccp/ccp_dev.c     | 3 +--
 drivers/crypto/ccp/ccp_pmd_ops.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/ccp/ccp_dev.c +1 -2
index 0eb1b0328ef0..424ead82c3aa 100644
@@ -673,8 +673,7 @@ ccp_probe_device(int ccp_type, struct rte_pci_device *pci_dev)
 	CCP_LOG_ERR("CCP Device probe failed");
 	if (uio_fd >= 0)
 		close(uio_fd);
-	if (ccp_dev)
-		rte_free(ccp_dev);
+	rte_free(ccp_dev);
 	return -1;
 }
 
drivers/crypto/ccp/ccp_pmd_ops.c +1 -2
index 0d615d311c9b..1b600e81ad5c 100644
@@ -744,8 +744,7 @@ ccp_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
 
 qp_setup_cleanup:
 	dev->data->queue_pairs[qp_id] = NULL;
-	if (qp)
-		rte_free(qp);
+	rte_free(qp);
 	return -1;
 }
 
Signature · 1 line
2.30.2
#138 lore raw

PATCH v2 31/83 crypto/cnxk: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/cnxk/cnxk_ae.h | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/cnxk/cnxk_ae.h +2 -4
index 6222171fe603..01ccfcd33432 100644
@@ -196,13 +196,11 @@ cnxk_ae_free_session_parameters(struct cnxk_ae_sess *sess)
 	switch (sess->xfrm_type) {
 	case RTE_CRYPTO_ASYM_XFORM_RSA:
 		rsa = &sess->rsa_ctx;
-		if (rsa->n.data)
-			rte_free(rsa->n.data);
+		rte_free(rsa->n.data);
 		break;
 	case RTE_CRYPTO_ASYM_XFORM_MODEX:
 		mod = &sess->mod_ctx;
-		if (mod->modulus.data)
-			rte_free(mod->modulus.data);
+		rte_free(mod->modulus.data);
 		break;
 	case RTE_CRYPTO_ASYM_XFORM_ECDSA:
 		/* Fall through */
Signature · 1 line
2.30.2
#139 lore raw

PATCH v2 32/83 crypto/ipsec_mb: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/ipsec_mb/ipsec_mb_ops.c +2 -4
index 189262c4ad52..f808da9edf89 100644
@@ -102,8 +102,7 @@ ipsec_mb_qp_release(struct rte_cryptodev *dev, uint16_t qp_id)
 
 	if (qp != NULL && rte_eal_process_type() == RTE_PROC_PRIMARY) {
 		r = rte_ring_lookup(qp->name);
-		if (r)
-			rte_ring_free(r);
+		rte_ring_free(r);
 
 #if IMB_VERSION(1, 1, 0) > IMB_VERSION_NUM
 		if (qp->mb_mgr)
@@ -291,8 +290,7 @@ ipsec_mb_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
 	if (qp->mb_mgr_mz)
 		rte_memzone_free(qp->mb_mgr_mz);
 #endif
-	if (qp)
-		rte_free(qp);
+	rte_free(qp);
 	return ret;
 }
 
Signature · 1 line
2.30.2
Acked-by on v2 32/83
#140 lore raw

RE: [PATCH v2 32/83] crypto/ipsec_mb: remove unnecessary NULL checks

Quoted 46 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, January 24, 2022 5:46 PM
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Zhang, Roy Fan <[email protected]>; De Lara Guarch, Pablo <[email protected]>
Subject: [PATCH v2 32/83] crypto/ipsec_mb: remove unnecessary NULL checks

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/ipsec_mb/ipsec_mb_ops.c +1 -2
index 189262c4ad52..f808da9edf89 100644
@@ -102,8 +102,7 @@ ipsec_mb_qp_release(struct rte_cryptodev *dev,
 uint16_t qp_id)
 
 	if (qp != NULL && rte_eal_process_type() == RTE_PROC_PRIMARY) {
 		r = rte_ring_lookup(qp->name);
-		if (r)
-			rte_ring_free(r);
+		rte_ring_free(r);
 
 #if IMB_VERSION(1, 1, 0) > IMB_VERSION_NUM
drivers/crypto/ipsec_mb/ipsec_mb_ops.c +1 -3
 		if (qp->mb_mgr)
@@ -291,8 +290,7 @@ ipsec_mb_qp_setup(struct rte_cryptodev *dev,
 uint16_t qp_id,
 	if (qp->mb_mgr_mz)
 		rte_memzone_free(qp->mb_mgr_mz);
 #endif
-	if (qp)
-		rte_free(qp);
+	rte_free(qp);
 	return ret;
 }
 
--
Quoted 1 line

2.30.2

#141 lore raw

PATCH v2 33/83 crypto/mvsam: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/mvsam/rte_mrvl_pmd_ops.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/mvsam/rte_mrvl_pmd_ops.c +2 -4
index 3064b1f136fe..f828dc9db5f6 100644
@@ -774,10 +774,8 @@ mrvl_crypto_pmd_sym_session_configure(__rte_unused struct rte_cryptodev *dev,
 	}
 
 	/* free the keys memory allocated for session creation */
-	if (mrvl_sess->sam_sess_params.cipher_key != NULL)
-		free(mrvl_sess->sam_sess_params.cipher_key);
-	if (mrvl_sess->sam_sess_params.auth_key != NULL)
-		free(mrvl_sess->sam_sess_params.auth_key);
+	free(mrvl_sess->sam_sess_params.cipher_key);
+	free(mrvl_sess->sam_sess_params.auth_key);
 
 	return 0;
 }
Signature · 1 line
2.30.2
#142 lore raw

PATCH v2 34/83 crypto/null: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/null/null_crypto_pmd_ops.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/null/null_crypto_pmd_ops.c +2 -4
index a8b5a06e7f4e..90a675dfffe0 100644
@@ -135,8 +135,7 @@ null_crypto_pmd_qp_release(struct rte_cryptodev *dev, uint16_t qp_id)
 	if (dev->data->queue_pairs[qp_id] != NULL) {
 		struct null_crypto_qp *qp = dev->data->queue_pairs[qp_id];
 
-		if (qp->processed_pkts)
-			rte_ring_free(qp->processed_pkts);
+		rte_ring_free(qp->processed_pkts);
 
 		rte_free(dev->data->queue_pairs[qp_id]);
 		dev->data->queue_pairs[qp_id] = NULL;
@@ -241,8 +240,7 @@ null_crypto_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
 	return 0;
 
 qp_setup_cleanup:
-	if (qp)
-		rte_free(qp);
+	rte_free(qp);
 
 	return -1;
 }
Signature · 1 line
2.30.2
#143 lore raw

PATCH v2 35/83 crypto/octeontx: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/octeontx/otx_cryptodev_ops.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/crypto/octeontx/otx_cryptodev_ops.c +1 -2
index f7ca8a8a8e90..f1aae481c3c6 100644
@@ -335,8 +335,7 @@ sym_session_clear(int driver_id, struct rte_cryptodev_sym_session *sess)
 	misc = priv;
 	ctx = SESS_PRIV(misc);
 
-	if (ctx->auth_key != NULL)
-		rte_free(ctx->auth_key);
+	rte_free(ctx->auth_key);
 
 	memset(priv, 0, cpt_get_session_size());
 
Signature · 1 line
2.30.2
#144 lore raw

PATCH v2 36/83 crypto/openssl: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/openssl/rte_openssl_pmd_ops.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/openssl/rte_openssl_pmd_ops.c +2 -4
index 52715f86f84a..b1c0b14fefd2 100644
@@ -659,8 +659,7 @@ openssl_pmd_qp_release(struct rte_cryptodev *dev, uint16_t qp_id)
 	if (dev->data->queue_pairs[qp_id] != NULL) {
 		struct openssl_qp *qp = dev->data->queue_pairs[qp_id];
 
-		if (qp->processed_ops)
-			rte_ring_free(qp->processed_ops);
+		rte_ring_free(qp->processed_ops);
 
 		rte_free(dev->data->queue_pairs[qp_id]);
 		dev->data->queue_pairs[qp_id] = NULL;
@@ -748,8 +747,7 @@ openssl_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
 	return 0;
 
 qp_setup_cleanup:
-	if (qp)
-		rte_free(qp);
+	rte_free(qp);
 
 	return -1;
 }
Signature · 1 line
2.30.2
#145 lore raw

PATCH v2 37/83 crypto/scheduler: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/scheduler/scheduler_pmd_ops.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/scheduler/scheduler_pmd_ops.c +2 -4
index f61640c9d646..f3a1bd626c6f 100644
@@ -371,10 +371,8 @@ scheduler_pmd_qp_release(struct rte_cryptodev *dev, uint16_t qp_id)
 	if (!qp_ctx)
 		return 0;
 
-	if (qp_ctx->order_ring)
-		rte_ring_free(qp_ctx->order_ring);
-	if (qp_ctx->private_qp_ctx)
-		rte_free(qp_ctx->private_qp_ctx);
+	rte_ring_free(qp_ctx->order_ring);
+	rte_free(qp_ctx->private_qp_ctx);
 
 	rte_free(qp_ctx);
 	dev->data->queue_pairs[qp_id] = NULL;
Signature · 1 line
2.30.2
Acked-by on v2 37/83
#146 lore raw

RE: [PATCH v2 37/83] crypto/scheduler: remove unnecessary NULL checks

Quoted 9 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, January 24, 2022 5:47 PM
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Zhang, Roy Fan <[email protected]>
Subject: [PATCH v2 37/83] crypto/scheduler: remove unnecessary NULL checks

Quoted 5 lines

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---

#147 lore raw

PATCH v2 38/83 crypto/virtio: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/crypto/virtio/virtqueue.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/crypto/virtio/virtqueue.c +2 -4
index fd8be581c996..3e2db1ebd250 100644
@@ -32,10 +32,8 @@ virtqueue_detatch_unused(struct virtqueue *vq)
 		for (idx = 0; idx < vq->vq_nentries; idx++) {
 			cop = vq->vq_descx[idx].crypto_op;
 			if (cop) {
-				if (cop->sym->m_src)
-					rte_pktmbuf_free(cop->sym->m_src);
-				if (cop->sym->m_dst)
-					rte_pktmbuf_free(cop->sym->m_dst);
+				rte_pktmbuf_free(cop->sym->m_src);
+				rte_pktmbuf_free(cop->sym->m_dst);
 				rte_crypto_op_free(cop);
 				vq->vq_descx[idx].crypto_op = NULL;
 			}
Signature · 1 line
2.30.2
#148 lore raw

PATCH v2 39/83 event/sw: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/event/sw/sw_evdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/event/sw/sw_evdev.c +1 -2
index 6ae613e0f2e7..ba82a80385b6 100644
@@ -526,8 +526,7 @@ sw_dev_configure(const struct rte_eventdev *dev)
 	 * IQ chunk references were cleaned out of the QIDs in sw_stop(), and
 	 * will be reinitialized in sw_start().
 	 */
-	if (sw->chunks)
-		rte_free(sw->chunks);
+	rte_free(sw->chunks);
 
 	sw->chunks = rte_malloc_socket(NULL,
 				       sizeof(struct sw_queue_chunk) *
Signature · 1 line
2.30.2
#149 lore raw

PATCH v2 40/83 net/axgbe: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/axgbe/axgbe_rxtx.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/net/axgbe/axgbe_rxtx.c +2 -4
index 6bd41d3002bf..f38bb64fab6b 100644
@@ -22,8 +22,7 @@ axgbe_rx_queue_release(struct axgbe_rx_queue *rx_queue)
 		sw_ring = rx_queue->sw_ring;
 		if (sw_ring) {
 			for (i = 0; i < rx_queue->nb_desc; i++) {
-				if (sw_ring[i])
-					rte_pktmbuf_free(sw_ring[i]);
+				rte_pktmbuf_free(sw_ring[i]);
 			}
 			rte_free(sw_ring);
 		}
@@ -507,8 +506,7 @@ static void axgbe_tx_queue_release(struct axgbe_tx_queue *tx_queue)
 		sw_ring = tx_queue->sw_ring;
 		if (sw_ring) {
 			for (i = 0; i < tx_queue->nb_desc; i++) {
-				if (sw_ring[i])
-					rte_pktmbuf_free(sw_ring[i]);
+				rte_pktmbuf_free(sw_ring[i]);
 			}
 			rte_free(sw_ring);
 		}
Signature · 1 line
2.30.2
#150 lore raw

PATCH v2 41/83 net/bnx2x: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/bnx2x/bnx2x_rxtx.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/net/bnx2x/bnx2x_rxtx.c +2 -4
index 66b0512c8695..00ddccf151fd 100644
@@ -27,8 +27,7 @@ bnx2x_rx_queue_release(struct bnx2x_rx_queue *rx_queue)
 		sw_ring = rx_queue->sw_ring;
 		if (NULL != sw_ring) {
 			for (i = 0; i < rx_queue->nb_rx_desc; i++) {
-				if (NULL != sw_ring[i])
-					rte_pktmbuf_free(sw_ring[i]);
+				rte_pktmbuf_free(sw_ring[i]);
 			}
 			rte_free(sw_ring);
 		}
@@ -172,8 +171,7 @@ bnx2x_tx_queue_release(struct bnx2x_tx_queue *tx_queue)
 		sw_ring = tx_queue->sw_ring;
 		if (NULL != sw_ring) {
 			for (i = 0; i < tx_queue->nb_tx_desc; i++) {
-				if (NULL != sw_ring[i])
-					rte_pktmbuf_free(sw_ring[i]);
+				rte_pktmbuf_free(sw_ring[i]);
 			}
 			rte_free(sw_ring);
 		}
Signature · 1 line
2.30.2
#151 lore raw

PATCH v2 42/83 net/bnxt: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/bnxt/bnxt_ethdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/bnxt/bnxt_ethdev.c +1 -2
index f79f33ab4e17..78339d43674d 100644
@@ -5833,8 +5833,7 @@ static void bnxt_free_ctx_mem_buf(struct bnxt_ctx_mem_buf_info *ctx)
 	if (!ctx)
 		return;
 
-	if (ctx->va)
-		rte_free(ctx->va);
+	rte_free(ctx->va);
 
 	ctx->va = NULL;
 	ctx->dma = RTE_BAD_IOVA;
Signature · 1 line
2.30.2
#152 lore raw

PATCH v2 43/83 net/bonding: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/bonding/rte_eth_bond_pmd.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/bonding/rte_eth_bond_pmd.c +1 -2
index 84f4900ee52c..963280828a65 100644
@@ -2148,8 +2148,7 @@ bond_ethdev_close(struct rte_eth_dev *dev)
 	 */
 	rte_mempool_free(internals->mode6.mempool);
 
-	if (internals->kvlist != NULL)
-		rte_kvargs_free(internals->kvlist);
+	rte_kvargs_free(internals->kvlist);
 
 	return 0;
 }
Signature · 1 line
2.30.2
Acked-by on v2 43/83
#153 lore raw

Re: [PATCH v2 43/83] net/bonding: remove unnecessary NULL checks

Quoted 23 lines · Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
  drivers/net/bonding/rte_eth_bond_pmd.c | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/bonding/rte_eth_bond_pmd.c +1 -2
index 84f4900ee52c..963280828a65 100644
@@ -2148,8 +2148,7 @@ bond_ethdev_close(struct rte_eth_dev *dev)
  	 */
  	rte_mempool_free(internals->mode6.mempool);
 
-	if (internals->kvlist != NULL)
-		rte_kvargs_free(internals->kvlist);
+	rte_kvargs_free(internals->kvlist);
 
  	return 0;
  }
#154 lore raw

PATCH v2 44/83 net/cnxk: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/cnxk/cnxk_ethdev.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/net/cnxk/cnxk_ethdev.c +2 -4
index 74f625553df4..d679a1f78501 100644
@@ -934,10 +934,8 @@ nix_restore_queue_cfg(struct rte_eth_dev *eth_dev)
 	for (i = 0; i < eth_dev->data->nb_tx_queues; i++)
 		dev_ops->tx_queue_release(eth_dev, i);
 fail:
-	if (tx_qconf)
-		free(tx_qconf);
-	if (rx_qconf)
-		free(rx_qconf);
+	free(tx_qconf);
+	free(rx_qconf);
 
 	return rc;
 }
Signature · 1 line
2.30.2
#155 lore raw

PATCH v2 45/83 net/cxgbe: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/cxgbe/cxgbe_main.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/cxgbe/cxgbe_main.c +1 -2
index f1ac32270961..ab06e30a5e0f 100644
@@ -463,8 +463,7 @@ void cxgbe_insert_tid(struct tid_info *t, void *data, unsigned int tid,
 static void tid_free(struct tid_info *t)
 {
 	if (t->tid_tab) {
-		if (t->ftid_bmap)
-			rte_bitmap_free(t->ftid_bmap);
+		rte_bitmap_free(t->ftid_bmap);
 
 		if (t->ftid_bmap_array)
 			t4_os_free(t->ftid_bmap_array);
Signature · 1 line
2.30.2
#156 lore raw

PATCH v2 46/83 net/dpaa: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/dpaa/dpaa_ethdev.c  | 3 +--
 drivers/net/dpaa/fmlib/fm_lib.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)
drivers/net/dpaa/dpaa_ethdev.c +1 -2
index 2c2c4e4ebb5d..90208a31de26 100644
@@ -463,8 +463,7 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
 	}
 
 	/* release configuration memory */
-	if (dpaa_intf->fc_conf)
-		rte_free(dpaa_intf->fc_conf);
+	rte_free(dpaa_intf->fc_conf);
 
 	/* Release RX congestion Groups */
 	if (dpaa_intf->cgr_rx) {
drivers/net/dpaa/fmlib/fm_lib.c +1 -2
index 0d1ca12378d8..1d6816050c2f 100644
@@ -408,8 +408,7 @@ fm_port_close(t_handle h_fm_port)
 	_fml_dbg("Calling...\n");
 
 	close(p_dev->fd);
-	if (p_dev->h_user_priv)
-		free(p_dev->h_user_priv);
+	free(p_dev->h_user_priv);
 	free(p_dev);
 
 	_fml_dbg("Finishing.\n");
Signature · 1 line
2.30.2
#157 lore raw

PATCH v2 47/83 net/dpaa2: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/dpaa2/dpaa2_ethdev.c | 3 +--
 drivers/net/dpaa2/dpaa2_mux.c    | 3 +--
 drivers/net/dpaa2/dpaa2_ptp.c    | 3 +--
 3 files changed, 3 insertions(+), 6 deletions(-)
drivers/net/dpaa2/dpaa2_ethdev.c +1 -2
index 2b04f1416853..6b85b7740cfa 100644
@@ -504,8 +504,7 @@ dpaa2_free_rx_tx_queues(struct rte_eth_dev *dev)
 		/* cleaning up queue storage */
 		for (i = 0; i < priv->nb_rx_queues; i++) {
 			dpaa2_q = (struct dpaa2_queue *)priv->rx_vq[i];
-			if (dpaa2_q->q_storage)
-				rte_free(dpaa2_q->q_storage);
+			rte_free(dpaa2_q->q_storage);
 		}
 		/* cleanup tx queue cscn */
 		for (i = 0; i < priv->nb_tx_queues; i++) {
drivers/net/dpaa2/dpaa2_mux.c +1 -2
index cd2f7b8aa544..bd4596b89149 100644
@@ -353,8 +353,7 @@ dpaa2_create_dpdmux_device(int vdev_fd __rte_unused,
 	return 0;
 
 init_err:
-	if (dpdmux_dev)
-		rte_free(dpdmux_dev);
+	rte_free(dpdmux_dev);
 
 	return -1;
 }
drivers/net/dpaa2/dpaa2_ptp.c +1 -2
index 8d79e392445a..5fcc36abe7b0 100644
@@ -168,8 +168,7 @@ dpaa2_create_dprtc_device(int vdev_fd __rte_unused,
 	return 0;
 
 init_err:
-	if (dprtc_dev)
-		rte_free(dprtc_dev);
+	rte_free(dprtc_dev);
 
 	return -1;
 }
Signature · 1 line
2.30.2
#158 lore raw

PATCH v2 48/83 net/ena: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/ena/ena_ethdev.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)
drivers/net/ena/ena_ethdev.c +6 -12
index dce26cfa48cf..db2b5ec8e77b 100644
@@ -567,16 +567,13 @@ static void ena_rx_queue_release(struct rte_eth_dev *dev, uint16_t qid)
 	struct ena_ring *ring = dev->data->rx_queues[qid];
 
 	/* Free ring resources */
-	if (ring->rx_buffer_info)
-		rte_free(ring->rx_buffer_info);
+	rte_free(ring->rx_buffer_info);
 	ring->rx_buffer_info = NULL;
 
-	if (ring->rx_refill_buffer)
-		rte_free(ring->rx_refill_buffer);
+	rte_free(ring->rx_refill_buffer);
 	ring->rx_refill_buffer = NULL;
 
-	if (ring->empty_rx_reqs)
-		rte_free(ring->empty_rx_reqs);
+	rte_free(ring->empty_rx_reqs);
 	ring->empty_rx_reqs = NULL;
 
 	ring->configured = 0;
@@ -590,14 +587,11 @@ static void ena_tx_queue_release(struct rte_eth_dev *dev, uint16_t qid)
 	struct ena_ring *ring = dev->data->tx_queues[qid];
 
 	/* Free ring resources */
-	if (ring->push_buf_intermediate_buf)
-		rte_free(ring->push_buf_intermediate_buf);
+	rte_free(ring->push_buf_intermediate_buf);
 
-	if (ring->tx_buffer_info)
-		rte_free(ring->tx_buffer_info);
+	rte_free(ring->tx_buffer_info);
 
-	if (ring->empty_tx_reqs)
-		rte_free(ring->empty_tx_reqs);
+	rte_free(ring->empty_tx_reqs);
 
 	ring->empty_tx_reqs = NULL;
 	ring->tx_buffer_info = NULL;
Signature · 1 line
2.30.2
#159 lore raw

PATCH v2 49/83 net/hinic: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/hinic/hinic_pmd_ethdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/hinic/hinic_pmd_ethdev.c +1 -2
index e8d9aaba84a6..35788f46eb4c 100644
@@ -2662,8 +2662,7 @@ static int hinic_copy_mempool_init(struct hinic_nic_dev *nic_dev)
 
 static void hinic_copy_mempool_uninit(struct hinic_nic_dev *nic_dev)
 {
-	if (nic_dev->cpy_mpool != NULL)
-		rte_mempool_free(nic_dev->cpy_mpool);
+	rte_mempool_free(nic_dev->cpy_mpool);
 }
 
 static int hinic_init_sw_rxtxqs(struct hinic_nic_dev *nic_dev)
Signature · 1 line
2.30.2
#160 lore raw

PATCH v2 50/83 net/hns3: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/hns3/hns3_rxtx.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
drivers/net/hns3/hns3_rxtx.c +3 -6
index d240e36e6a86..8a428f88f48e 100644
@@ -86,8 +86,7 @@ hns3_rx_queue_release(void *queue)
 		hns3_rx_queue_release_mbufs(rxq);
 		if (rxq->mz)
 			rte_memzone_free(rxq->mz);
-		if (rxq->sw_ring)
-			rte_free(rxq->sw_ring);
+		rte_free(rxq->sw_ring);
 		rte_free(rxq);
 	}
 }
@@ -100,10 +99,8 @@ hns3_tx_queue_release(void *queue)
 		hns3_tx_queue_release_mbufs(txq);
 		if (txq->mz)
 			rte_memzone_free(txq->mz);
-		if (txq->sw_ring)
-			rte_free(txq->sw_ring);
-		if (txq->free)
-			rte_free(txq->free);
+		rte_free(txq->sw_ring);
+		rte_free(txq->free);
 		rte_free(txq);
 	}
 }
Signature · 1 line
2.30.2
Acked-by on v2 50/83
#161 lore raw

Re: [PATCH v2 50/83] net/hns3: remove unnecessary NULL checks

Quoted 36 lines · Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
  drivers/net/hns3/hns3_rxtx.c | 9 +++------
  1 file changed, 3 insertions(+), 6 deletions(-)
drivers/net/hns3/hns3_rxtx.c +3 -6
index d240e36e6a86..8a428f88f48e 100644
@@ -86,8 +86,7 @@ hns3_rx_queue_release(void *queue)
  		hns3_rx_queue_release_mbufs(rxq);
  		if (rxq->mz)
  			rte_memzone_free(rxq->mz);
-		if (rxq->sw_ring)
-			rte_free(rxq->sw_ring);
+		rte_free(rxq->sw_ring);
  		rte_free(rxq);
  	}
  }
@@ -100,10 +99,8 @@ hns3_tx_queue_release(void *queue)
  		hns3_tx_queue_release_mbufs(txq);
  		if (txq->mz)
  			rte_memzone_free(txq->mz);
-		if (txq->sw_ring)
-			rte_free(txq->sw_ring);
-		if (txq->free)
-			rte_free(txq->free);
+		rte_free(txq->sw_ring);
+		rte_free(txq->free);
  		rte_free(txq);
  	}
  }
#162 lore raw

PATCH v2 51/83 net/i40e: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/i40e/i40e_ethdev.c | 27 +++++++++------------------
 drivers/net/i40e/i40e_rxtx.c   |  3 +--
 2 files changed, 10 insertions(+), 20 deletions(-)
drivers/net/i40e/i40e_ethdev.c +9 -18
index 1d417dbf8ad7..ecfa3c94db44 100644
@@ -1781,10 +1781,8 @@ i40e_rm_ethtype_filter_list(struct i40e_pf *pf)
 
 	ethertype_rule = &pf->ethertype;
 	/* Remove all ethertype filter rules and hash */
-	if (ethertype_rule->hash_map)
-		rte_free(ethertype_rule->hash_map);
-	if (ethertype_rule->hash_table)
-		rte_hash_free(ethertype_rule->hash_table);
+	rte_free(ethertype_rule->hash_map);
+	rte_hash_free(ethertype_rule->hash_table);
 
 	while ((p_ethertype = TAILQ_FIRST(&ethertype_rule->ethertype_list))) {
 		TAILQ_REMOVE(&ethertype_rule->ethertype_list,
@@ -1801,10 +1799,8 @@ i40e_rm_tunnel_filter_list(struct i40e_pf *pf)
 
 	tunnel_rule = &pf->tunnel;
 	/* Remove all tunnel director rules and hash */
-	if (tunnel_rule->hash_map)
-		rte_free(tunnel_rule->hash_map);
-	if (tunnel_rule->hash_table)
-		rte_hash_free(tunnel_rule->hash_table);
+	rte_free(tunnel_rule->hash_map);
+	rte_hash_free(tunnel_rule->hash_table);
 
 	while ((p_tunnel = TAILQ_FIRST(&tunnel_rule->tunnel_list))) {
 		TAILQ_REMOVE(&tunnel_rule->tunnel_list, p_tunnel, rules);
@@ -1833,16 +1829,11 @@ i40e_fdir_memory_cleanup(struct i40e_pf *pf)
 	fdir_info = &pf->fdir;
 
 	/* flow director memory cleanup */
-	if (fdir_info->hash_map)
-		rte_free(fdir_info->hash_map);
-	if (fdir_info->hash_table)
-		rte_hash_free(fdir_info->hash_table);
-	if (fdir_info->fdir_flow_pool.bitmap)
-		rte_free(fdir_info->fdir_flow_pool.bitmap);
-	if (fdir_info->fdir_flow_pool.pool)
-		rte_free(fdir_info->fdir_flow_pool.pool);
-	if (fdir_info->fdir_filter_array)
-		rte_free(fdir_info->fdir_filter_array);
+	rte_free(fdir_info->hash_map);
+	rte_hash_free(fdir_info->hash_table);
+	rte_free(fdir_info->fdir_flow_pool.bitmap);
+	rte_free(fdir_info->fdir_flow_pool.pool);
+	rte_free(fdir_info->fdir_filter_array);
 }
 
 void i40e_flex_payload_reg_set_default(struct i40e_hw *hw)
drivers/net/i40e/i40e_rxtx.c +1 -2
index 9a00a9b71e2c..25a28ecea22c 100644
@@ -2573,8 +2573,7 @@ i40e_reset_rx_queue(struct i40e_rx_queue *rxq)
 	rxq->rx_tail = 0;
 	rxq->nb_rx_hold = 0;
 
-	if (rxq->pkt_first_seg != NULL)
-		rte_pktmbuf_free(rxq->pkt_first_seg);
+	rte_pktmbuf_free(rxq->pkt_first_seg);
 
 	rxq->pkt_first_seg = NULL;
 	rxq->pkt_last_seg = NULL;
Signature · 1 line
2.30.2
#163 lore raw

PATCH v2 52/83 net/iavf: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/iavf/iavf_rxtx.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/iavf/iavf_rxtx.c +1 -2
index 59623ac82094..dabe8cba7561 100644
@@ -230,8 +230,7 @@ reset_rx_queue(struct iavf_rx_queue *rxq)
 	rxq->rx_tail = 0;
 	rxq->nb_rx_hold = 0;
 
-	if (rxq->pkt_first_seg != NULL)
-		rte_pktmbuf_free(rxq->pkt_first_seg);
+	rte_pktmbuf_free(rxq->pkt_first_seg);
 
 	rxq->pkt_first_seg = NULL;
 	rxq->pkt_last_seg = NULL;
Signature · 1 line
2.30.2
#164 lore raw

PATCH v2 53/83 net/ice: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/ice/ice_fdir_filter.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/net/ice/ice_fdir_filter.c +2 -4
index 13a2ac42df87..3fce8e1e6253 100644
@@ -421,10 +421,8 @@ ice_fdir_release_filter_list(struct ice_pf *pf)
 {
 	struct ice_fdir_info *fdir_info = &pf->fdir;
 
-	if (fdir_info->hash_map)
-		rte_free(fdir_info->hash_map);
-	if (fdir_info->hash_table)
-		rte_hash_free(fdir_info->hash_table);
+	rte_free(fdir_info->hash_map);
+	rte_hash_free(fdir_info->hash_table);
 
 	fdir_info->hash_map = NULL;
 	fdir_info->hash_table = NULL;
Signature · 1 line
2.30.2
#165 lore raw

PATCH v2 54/83 net/igc: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/igc/igc_flow.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
drivers/net/igc/igc_flow.c +1 -4
index 66053060af5a..58a6a8a539c6 100644
@@ -775,10 +775,7 @@ igc_flow_create(struct rte_eth_dev *dev,
 	}
 
 	if (ret) {
-		/* check and free the memory */
-		if (flow)
-			rte_free(flow);
-
+		rte_free(flow);
 		rte_flow_error_set(error, -ret,
 				RTE_FLOW_ERROR_TYPE_HANDLE, NULL,
 				"Failed to create flow.");
Signature · 1 line
2.30.2
Acked-by on v2 54/83
#166 lore raw

RE: [PATCH v2 54/83] net/igc: remove unnecessary NULL checks

Quoted 7 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Tuesday, January 25, 2022 01:47
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Wang, Haiyue <[email protected]>
Subject: [PATCH v2 54/83] net/igc: remove unnecessary NULL checks

Quoted 8 lines

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/igc/igc_flow.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
Quoted 1 line

2.30.2

#167 lore raw

PATCH v2 55/83 net/ixgbe: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/ixgbe/ixgbe_ethdev.c | 12 ++++--------
 drivers/net/ixgbe/ixgbe_rxtx.c   |  3 +--
 2 files changed, 5 insertions(+), 10 deletions(-)
drivers/net/ixgbe/ixgbe_ethdev.c +4 -8
index c8f0460440c0..d7efe5c6d753 100644
@@ -1322,10 +1322,8 @@ static int ixgbe_fdir_filter_uninit(struct rte_eth_dev *eth_dev)
 		IXGBE_DEV_PRIVATE_TO_FDIR_INFO(eth_dev->data->dev_private);
 	struct ixgbe_fdir_filter *fdir_filter;
 
-		if (fdir_info->hash_map)
-		rte_free(fdir_info->hash_map);
-	if (fdir_info->hash_handle)
-		rte_hash_free(fdir_info->hash_handle);
+	rte_free(fdir_info->hash_map);
+	rte_hash_free(fdir_info->hash_handle);
 
 	while ((fdir_filter = TAILQ_FIRST(&fdir_info->fdir_list))) {
 		TAILQ_REMOVE(&fdir_info->fdir_list,
@@ -1343,10 +1341,8 @@ static int ixgbe_l2_tn_filter_uninit(struct rte_eth_dev *eth_dev)
 		IXGBE_DEV_PRIVATE_TO_L2_TN_INFO(eth_dev->data->dev_private);
 	struct ixgbe_l2_tn_filter *l2_tn_filter;
 
-	if (l2_tn_info->hash_map)
-		rte_free(l2_tn_info->hash_map);
-	if (l2_tn_info->hash_handle)
-		rte_hash_free(l2_tn_info->hash_handle);
+	rte_free(l2_tn_info->hash_map);
+	rte_hash_free(l2_tn_info->hash_handle);
 
 	while ((l2_tn_filter = TAILQ_FIRST(&l2_tn_info->l2_tn_list))) {
 		TAILQ_REMOVE(&l2_tn_info->l2_tn_list,
drivers/net/ixgbe/ixgbe_rxtx.c +1 -2
index 99e928a2a971..9e8ea366a506 100644
@@ -2983,8 +2983,7 @@ ixgbe_reset_rx_queue(struct ixgbe_adapter *adapter, struct ixgbe_rx_queue *rxq)
 	rxq->rx_tail = 0;
 	rxq->nb_rx_hold = 0;
 
-	if (rxq->pkt_first_seg != NULL)
-		rte_pktmbuf_free(rxq->pkt_first_seg);
+	rte_pktmbuf_free(rxq->pkt_first_seg);
 
 	rxq->pkt_first_seg = NULL;
 	rxq->pkt_last_seg = NULL;
Signature · 1 line
2.30.2
Acked-by on v2 55/83
#168 lore raw

RE: [PATCH v2 55/83] net/ixgbe: remove unnecessary NULL checks

Quoted 7 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Tuesday, January 25, 2022 01:47
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Wang, Haiyue <[email protected]>
Subject: [PATCH v2 55/83] net/ixgbe: remove unnecessary NULL checks

Quoted 9 lines

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/ixgbe/ixgbe_ethdev.c | 12 ++++--------
 drivers/net/ixgbe/ixgbe_rxtx.c   |  3 +--
 2 files changed, 5 insertions(+), 10 deletions(-)
Quoted 2 lines

--
2.30.2

#169 lore raw

PATCH v2 56/83 net/memif: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/memif/rte_eth_memif.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/net/memif/rte_eth_memif.c +2 -4
index 59cb5a82a23f..5c2203f5270b 100644
@@ -1731,8 +1731,7 @@ memif_check_socket_filename(const char *filename)
 		ret = -EINVAL;
 	}
 
-	if (dir != NULL)
-		rte_free(dir);
+	rte_free(dir);
 
 	return ret;
 }
@@ -1903,8 +1902,7 @@ rte_pmd_memif_probe(struct rte_vdev_device *vdev)
 			   log2_ring_size, pkt_buffer_size, secret, ether_addr);
 
 exit:
-	if (kvlist != NULL)
-		rte_kvargs_free(kvlist);
+	rte_kvargs_free(kvlist);
 	return ret;
 }
 
Signature · 1 line
2.30.2
#170 lore raw

PATCH v2 57/83 net/mlx4: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/mlx4/mlx4_mr.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/mlx4/mlx4_mr.c +1 -2
index 2274b5df1950..e95f45aa3e95 100644
@@ -471,8 +471,7 @@ mr_free(struct mlx4_mr *mr)
 	DEBUG("freeing MR(%p):", (void *)mr);
 	if (mr->ibv_mr != NULL)
 		claim_zero(mlx4_glue->dereg_mr(mr->ibv_mr));
-	if (mr->ms_bmp != NULL)
-		rte_bitmap_free(mr->ms_bmp);
+	rte_bitmap_free(mr->ms_bmp);
 	rte_free(mr);
 }
 
Signature · 1 line
2.30.2
Acked-by on v2 57/83
#171 lore raw

RE: [PATCH v2 57/83] net/mlx4: remove unnecessary NULL checks

Quoted 8 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, January 24, 2022 19:47
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Matan Azrad <[email protected]>; Slava Ovsiienko <[email protected]>
Subject: [PATCH v2 57/83] net/mlx4: remove unnecessary NULL checks

Quoted 4 lines

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

#172 lore raw

PATCH v2 58/83 net/mlx5: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/mlx5/mlx5_flow.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/mlx5/mlx5_flow.c +1 -2
index b7cf4143d5a1..c718dbdb3dc7 100644
@@ -6990,8 +6990,7 @@ flow_alloc_thread_workspace(void)
 	data->rssq_num = MLX5_RSSQ_DEFAULT_NUM;
 	return data;
 err:
-	if (data->rss_desc.queue)
-		free(data->rss_desc.queue);
+	free(data->rss_desc.queue);
 	free(data);
 	return NULL;
 }
Signature · 1 line
2.30.2
Acked-by on v2 58/83
#173 lore raw

RE: [PATCH v2 58/83] net/mlx5: remove unnecessary NULL checks

Quoted 8 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, January 24, 2022 19:47
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Matan Azrad <[email protected]>; Slava Ovsiienko <[email protected]>
Subject: [PATCH v2 58/83] net/mlx5: remove unnecessary NULL checks

Quoted 4 lines

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

#174 lore raw

PATCH v2 59/83 net/mvpp2: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/mvpp2/mrvl_qos.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/mvpp2/mrvl_qos.c +1 -2
index 99f0ee56d1a7..f43217bc589c 100644
@@ -945,8 +945,7 @@ setup_tc(struct pp2_ppio_tc_params *param, uint8_t inqs,
 	param->num_in_qs = inqs;
 
 	/* Release old config if necessary. */
-	if (param->inqs_params)
-		rte_free(param->inqs_params);
+	rte_free(param->inqs_params);
 
 	param->inqs_params = inq_params;
 
Signature · 1 line
2.30.2
#175 lore raw

PATCH v2 60/83 net/netvsc: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/netvsc/hn_rxtx.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/net/netvsc/hn_rxtx.c +2 -4
index 50ca1710ef3e..3e3488f1b87a 100644
@@ -315,8 +315,7 @@ hn_dev_tx_queue_setup(struct rte_eth_dev *dev,
 	}
 
 error:
-	if (txq->txdesc_pool)
-		rte_mempool_free(txq->txdesc_pool);
+	rte_mempool_free(txq->txdesc_pool);
 	rte_memzone_free(txq->tx_rndis_mz);
 	rte_free(txq);
 	return err;
@@ -365,8 +364,7 @@ hn_dev_tx_queue_release(struct rte_eth_dev *dev, uint16_t qid)
 	if (!txq)
 		return;
 
-	if (txq->txdesc_pool)
-		rte_mempool_free(txq->txdesc_pool);
+	rte_mempool_free(txq->txdesc_pool);
 
 	rte_memzone_free(txq->tx_rndis_mz);
 	rte_free(txq);
Signature · 1 line
2.30.2
Acked-by on v2 60/83
#176 lore raw

RE: [PATCH v2 60/83] net/netvsc: remove unnecessary NULL checks

Quoted 6 lines

Subject: [PATCH v2 60/83] net/netvsc: remove unnecessary NULL checks

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

Quoted 31 lines
---
 drivers/net/netvsc/hn_rxtx.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/net/netvsc/hn_rxtx.c index renamed from drivers/net/netvsc/hn_rxtx.c +0 -0

50ca1710ef3e..3e3488f1b87a 100644

drivers/net/netvsc/hn_rxtx.c +2 -4
@@ -315,8 +315,7 @@ hn_dev_tx_queue_setup(struct rte_eth_dev *dev,
 	}
 
 error:
-	if (txq->txdesc_pool)
-		rte_mempool_free(txq->txdesc_pool);
+	rte_mempool_free(txq->txdesc_pool);
 	rte_memzone_free(txq->tx_rndis_mz);
 	rte_free(txq);
 	return err;
@@ -365,8 +364,7 @@ hn_dev_tx_queue_release(struct rte_eth_dev *dev,
 uint16_t qid)
 	if (!txq)
 		return;
 
-	if (txq->txdesc_pool)
-		rte_mempool_free(txq->txdesc_pool);
+	rte_mempool_free(txq->txdesc_pool);
 
 	rte_memzone_free(txq->tx_rndis_mz);

rte_free(txq);
--
2.30.2

#177 lore raw

PATCH v2 61/83 net/null: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/null/rte_eth_null.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/null/rte_eth_null.c +1 -2
index ca03469d0e6d..bb89c1abc4a2 100644
@@ -717,8 +717,7 @@ rte_pmd_null_probe(struct rte_vdev_device *dev)
 	ret = eth_dev_null_create(dev, &args);
 
 free_kvlist:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
+	rte_kvargs_free(kvlist);
 	return ret;
 }
 
Signature · 1 line
2.30.2
#178 lore raw

PATCH v2 62/83 net/octeontx: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/octeontx/octeontx_ethdev.c     | 3 +--
 drivers/net/octeontx/octeontx_ethdev_ops.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)
drivers/net/octeontx/octeontx_ethdev.c +1 -2
index b47472ebbd93..f5ea9de8efe5 100644
@@ -1037,8 +1037,7 @@ octeontx_dev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx,
 	return res;
 
 err:
-	if (txq)
-		rte_free(txq);
+	rte_free(txq);
 
 	return res;
 }
drivers/net/octeontx/octeontx_ethdev_ops.c +1 -2
index 6ec2b71b0672..0b22e28a5625 100644
@@ -108,8 +108,7 @@ octeontx_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
 	if (rc != 0) {
 		octeontx_log_err("Fail to configure vlan filter entry "
 				 "for port %d", nic->port_id);
-		if (entry)
-			rte_free(entry);
+		rte_free(entry);
 
 		goto done;
 	}
Signature · 1 line
2.30.2
#179 lore raw

PATCH v2 63/83 net/qede: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/qede/qede_main.c | 3 +--
 drivers/net/qede/qede_rxtx.c | 6 ++----
 2 files changed, 3 insertions(+), 6 deletions(-)
drivers/net/qede/qede_main.c +1 -2
index 2d1f70693a3d..ad101194d613 100644
@@ -335,8 +335,7 @@ static int qed_slowpath_start(struct ecore_dev *edev,
 err:
 #ifdef CONFIG_ECORE_BINARY_FW
 	if (IS_PF(edev)) {
-		if (edev->firmware)
-			rte_free(edev->firmware);
+		rte_free(edev->firmware);
 		edev->firmware = NULL;
 	}
 #endif
drivers/net/qede/qede_rxtx.c +2 -4
index 7088c57b501d..1c0a6ba5f1bf 100644
@@ -706,12 +706,10 @@ void qede_dealloc_fp_resc(struct rte_eth_dev *eth_dev)
 		}
 	}
 
-	if (qdev->fp_array)
-		rte_free(qdev->fp_array);
+	rte_free(qdev->fp_array);
 	qdev->fp_array = NULL;
 
-	if (qdev->fp_array_cmt)
-		rte_free(qdev->fp_array_cmt);
+	rte_free(qdev->fp_array_cmt);
 	qdev->fp_array_cmt = NULL;
 }
 
Signature · 1 line
2.30.2
Acked-by on v2 63/83
#180 lore raw

RE: [EXT] [PATCH v2 63/83] net/qede: remove unnecessary NULL checks

Quoted 57 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, January 24, 2022 11:17 PM
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Rasesh Mody <[email protected]>; Devendra Singh Rawat <[email protected]>
Subject: [EXT] [PATCH v2 63/83] net/qede: remove unnecessary NULL checks

External Email

----------------------------------------------------------------------
Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/qede/qede_main.c | 3 +--
 drivers/net/qede/qede_rxtx.c | 6 ++----
 2 files changed, 3 insertions(+), 6 deletions(-)
drivers/net/qede/qede_main.c +1 -2
index 2d1f70693a3d..ad101194d613 100644
@@ -335,8 +335,7 @@ static int qed_slowpath_start(struct ecore_dev *edev,
 err:
 #ifdef CONFIG_ECORE_BINARY_FW
 	if (IS_PF(edev)) {
-		if (edev->firmware)
-			rte_free(edev->firmware);
+		rte_free(edev->firmware);
 		edev->firmware = NULL;
 	}
 #endif
drivers/net/qede/qede_rxtx.c index renamed from drivers/net/qede/qede_rxtx.c +0 -0

7088c57b501d..1c0a6ba5f1bf 100644

drivers/net/qede/qede_rxtx.c +2 -5
@@ -706,12 +706,10 @@ void qede_dealloc_fp_resc(struct rte_eth_dev
 *eth_dev)
 		}
 	}
 
-	if (qdev->fp_array)
-		rte_free(qdev->fp_array);
+	rte_free(qdev->fp_array);
 	qdev->fp_array = NULL;
 
-	if (qdev->fp_array_cmt)
-		rte_free(qdev->fp_array_cmt);
+	rte_free(qdev->fp_array_cmt);
 	qdev->fp_array_cmt = NULL;
 }
 
--
Quoted 1 line

2.30.2

Thanks,
Devendra

#181 lore raw

PATCH v2 64/83 net/softnic: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/softnic/rte_eth_softnic_cli.c       | 12 ++++--------
 drivers/net/softnic/rte_eth_softnic_cryptodev.c |  6 ++----
 drivers/net/softnic/rte_eth_softnic_thread.c    |  6 ++----
 3 files changed, 8 insertions(+), 16 deletions(-)
drivers/net/softnic/rte_eth_softnic_cli.c +4 -8
index b04e78c6e0af..7acbeecae7a2 100644
@@ -4482,10 +4482,8 @@ parse_free_sym_crypto_param_data(struct rte_table_action_sym_crypto_params *p)
 
 		switch (xform[i]->type) {
 		case RTE_CRYPTO_SYM_XFORM_CIPHER:
-			if (p->cipher_auth.cipher_iv.val)
-				free(p->cipher_auth.cipher_iv.val);
-			if (p->cipher_auth.cipher_iv_update.val)
-				free(p->cipher_auth.cipher_iv_update.val);
+			free(p->cipher_auth.cipher_iv.val);
+			free(p->cipher_auth.cipher_iv_update.val);
 			break;
 		case RTE_CRYPTO_SYM_XFORM_AUTH:
 			if (p->cipher_auth.auth_iv.val)
@@ -4494,10 +4492,8 @@ parse_free_sym_crypto_param_data(struct rte_table_action_sym_crypto_params *p)
 				free(p->cipher_auth.cipher_iv_update.val);
 			break;
 		case RTE_CRYPTO_SYM_XFORM_AEAD:
-			if (p->aead.iv.val)
-				free(p->aead.iv.val);
-			if (p->aead.aad.val)
-				free(p->aead.aad.val);
+			free(p->aead.iv.val);
+			free(p->aead.aad.val);
 			break;
 		default:
 			continue;
drivers/net/softnic/rte_eth_softnic_cryptodev.c +2 -4
index 9a7d006f1a09..e4754055e90b 100644
@@ -159,10 +159,8 @@ softnic_cryptodev_create(struct pmd_internals *p,
 	return cryptodev;
 
 error_exit:
-	if (cryptodev->mp_create)
-		rte_mempool_free(cryptodev->mp_create);
-	if (cryptodev->mp_init)
-		rte_mempool_free(cryptodev->mp_init);
+	rte_mempool_free(cryptodev->mp_create);
+	rte_mempool_free(cryptodev->mp_init);
 
 	free(cryptodev);
 
drivers/net/softnic/rte_eth_softnic_thread.c +2 -4
index a8c26a5b2377..1b3b3c33c175 100644
@@ -29,11 +29,9 @@ softnic_thread_free(struct pmd_internals *softnic)
 		struct softnic_thread *t = &softnic->thread[i];
 
 		/* MSGQs */
-		if (t->msgq_req)
-			rte_ring_free(t->msgq_req);
+		rte_ring_free(t->msgq_req);
 
-		if (t->msgq_rsp)
-			rte_ring_free(t->msgq_rsp);
+		rte_ring_free(t->msgq_rsp);
 	}
 }
 
Signature · 1 line
2.30.2
#182 lore raw

PATCH v2 65/83 net/tap: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/tap/tap_flow.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
drivers/net/tap/tap_flow.c +3 -6
index 76738239458a..a9a55e439efc 100644
@@ -1465,8 +1465,7 @@ tap_flow_create(struct rte_eth_dev *dev,
 	}
 	return flow;
 fail:
-	if (remote_flow)
-		rte_free(remote_flow);
+	rte_free(remote_flow);
 	if (flow)
 		tap_flow_free(pmd, flow);
 	return NULL;
@@ -1541,8 +1540,7 @@ tap_flow_destroy_pmd(struct pmd_internals *pmd,
 		}
 	}
 end:
-	if (remote_flow)
-		rte_free(remote_flow);
+	rte_free(remote_flow);
 	tap_flow_free(pmd, flow);
 	return ret;
 }
@@ -1764,8 +1762,7 @@ int tap_flow_implicit_create(struct pmd_internals *pmd,
 success:
 	return 0;
 fail:
-	if (remote_flow)
-		rte_free(remote_flow);
+	rte_free(remote_flow);
 	return -1;
 }
 
Signature · 1 line
2.30.2
#183 lore raw

PATCH v2 66/83 net/txgbe: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/txgbe/txgbe_ethdev.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)
drivers/net/txgbe/txgbe_ethdev.c +4 -8
index ac4d4e08f407..6024397072c8 100644
@@ -821,10 +821,8 @@ static int txgbe_fdir_filter_uninit(struct rte_eth_dev *eth_dev)
 	struct txgbe_hw_fdir_info *fdir_info = TXGBE_DEV_FDIR(eth_dev);
 	struct txgbe_fdir_filter *fdir_filter;
 
-	if (fdir_info->hash_map)
-		rte_free(fdir_info->hash_map);
-	if (fdir_info->hash_handle)
-		rte_hash_free(fdir_info->hash_handle);
+	rte_free(fdir_info->hash_map);
+	rte_hash_free(fdir_info->hash_handle);
 
 	while ((fdir_filter = TAILQ_FIRST(&fdir_info->fdir_list))) {
 		TAILQ_REMOVE(&fdir_info->fdir_list,
@@ -841,10 +839,8 @@ static int txgbe_l2_tn_filter_uninit(struct rte_eth_dev *eth_dev)
 	struct txgbe_l2_tn_info *l2_tn_info = TXGBE_DEV_L2_TN(eth_dev);
 	struct txgbe_l2_tn_filter *l2_tn_filter;
 
-	if (l2_tn_info->hash_map)
-		rte_free(l2_tn_info->hash_map);
-	if (l2_tn_info->hash_handle)
-		rte_hash_free(l2_tn_info->hash_handle);
+	rte_free(l2_tn_info->hash_map);
+	rte_hash_free(l2_tn_info->hash_handle);
 
 	while ((l2_tn_filter = TAILQ_FIRST(&l2_tn_info->l2_tn_list))) {
 		TAILQ_REMOVE(&l2_tn_info->l2_tn_list,
Signature · 1 line
2.30.2
#184 lore raw

PATCH v2 67/83 net/vdev_netvsc: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/vdev_netvsc/vdev_netvsc.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/net/vdev_netvsc/vdev_netvsc.c +1 -2
index 55f2a342c5ae..25871951685c 100644
@@ -717,8 +717,7 @@ vdev_netvsc_vdev_probe(struct rte_vdev_device *dev)
 error:
 	++vdev_netvsc_ctx_inst;
 ignore:
-	if (kvargs)
-		rte_kvargs_free(kvargs);
+	rte_kvargs_free(kvargs);
 	/* Reset alarm if there are device context created */
 	if (vdev_netvsc_ctx_count) {
 		ret = rte_eal_alarm_set(VDEV_NETVSC_PROBE_MS * 1000,
Signature · 1 line
2.30.2
#185 lore raw

PATCH v2 68/83 net/virtio: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/net/virtio/virtio_user_ethdev.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)
drivers/net/virtio/virtio_user_ethdev.c +4 -8
index 0271098f0da0..f6288fd0c492 100644
@@ -688,14 +688,10 @@ virtio_user_pmd_probe(struct rte_vdev_device *vdev)
 	ret = 0;
 
 end:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
-	if (path)
-		free(path);
-	if (mac_addr)
-		free(mac_addr);
-	if (ifname)
-		free(ifname);
+	rte_kvargs_free(kvlist);
+	free(path);
+	free(mac_addr);
+	free(ifname);
 	return ret;
 }
 
Signature · 1 line
2.30.2
#186 lore raw

PATCH v2 69/83 raw/cnxk_bphy: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c +1 -2
index 0b694e1c03c3..169cbc785531 100644
@@ -233,8 +233,7 @@ cnxk_bphy_cgx_fini_queues(struct cnxk_bphy_cgx *cgx)
 	unsigned int i;
 
 	for (i = 0; i < cgx->num_queues; i++) {
-		if (cgx->queues[i].rsp)
-			rte_free(cgx->queues[i].rsp);
+		rte_free(cgx->queues[i].rsp);
 	}
 
 	cgx->num_queues = 0;
Signature · 1 line
2.30.2
#187 lore raw

PATCH v2 70/83 raw/dpaa2_qdma: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)
drivers/raw/dpaa2_qdma/dpaa2_qdma.c +5 -10
index ebc2cd5d0ddc..b2260439a4ef 100644
@@ -1115,11 +1115,9 @@ dpaa2_qdma_reset(struct rte_rawdev *rawdev)
 
 	/* Reset and free virtual queues */
 	for (i = 0; i < qdma_dev->max_vqs; i++) {
-		if (qdma_dev->vqs[i].status_ring)
-			rte_ring_free(qdma_dev->vqs[i].status_ring);
+		rte_ring_free(qdma_dev->vqs[i].status_ring);
 	}
-	if (qdma_dev->vqs)
-		rte_free(qdma_dev->vqs);
+	rte_free(qdma_dev->vqs);
 	qdma_dev->vqs = NULL;
 
 	/* Reset per core info */
@@ -1314,8 +1312,7 @@ dpaa2_qdma_queue_setup(struct rte_rawdev *rawdev,
 
 	if (qdma_dev->vqs[i].hw_queue == NULL) {
 		DPAA2_QDMA_ERR("No H/W queue available for VQ");
-		if (qdma_dev->vqs[i].status_ring)
-			rte_ring_free(qdma_dev->vqs[i].status_ring);
+		rte_ring_free(qdma_dev->vqs[i].status_ring);
 		qdma_dev->vqs[i].status_ring = NULL;
 		rte_spinlock_unlock(&qdma_dev->lock);
 		return -ENODEV;
@@ -1516,14 +1513,12 @@ dpaa2_qdma_queue_release(struct rte_rawdev *rawdev,
 	if (qdma_vq->exclusive_hw_queue)
 		free_hw_queue(qdma_vq->hw_queue);
 	else {
-		if (qdma_vq->status_ring)
-			rte_ring_free(qdma_vq->status_ring);
+		rte_ring_free(qdma_vq->status_ring);
 
 		put_hw_queue(qdma_vq->hw_queue);
 	}
 
-	if (qdma_vq->fle_pool)
-		rte_mempool_free(qdma_vq->fle_pool);
+	rte_mempool_free(qdma_vq->fle_pool);
 
 	memset(qdma_vq, 0, sizeof(struct qdma_virt_queue));
 
Signature · 1 line
2.30.2
Acked-by on v2 70/83
#188 lore raw

RE: [PATCH v2 70/83] raw/dpaa2_qdma: remove unnecessary NULL checks

Quoted 66 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: 24 January 2022 23:17
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Nipun Gupta <[email protected]>
Subject: [PATCH v2 70/83] raw/dpaa2_qdma: remove unnecessary NULL checks

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)
drivers/raw/dpaa2_qdma/dpaa2_qdma.c +3 -6
index ebc2cd5d0ddc..b2260439a4ef 100644
@@ -1115,11 +1115,9 @@ dpaa2_qdma_reset(struct rte_rawdev *rawdev)
 
 	/* Reset and free virtual queues */
 	for (i = 0; i < qdma_dev->max_vqs; i++) {
-		if (qdma_dev->vqs[i].status_ring)
-			rte_ring_free(qdma_dev->vqs[i].status_ring);
+		rte_ring_free(qdma_dev->vqs[i].status_ring);
 	}
-	if (qdma_dev->vqs)
-		rte_free(qdma_dev->vqs);
+	rte_free(qdma_dev->vqs);
 	qdma_dev->vqs = NULL;
 
 	/* Reset per core info */
@@ -1314,8 +1312,7 @@ dpaa2_qdma_queue_setup(struct rte_rawdev
 *rawdev,
 
 	if (qdma_dev->vqs[i].hw_queue == NULL) {
 		DPAA2_QDMA_ERR("No H/W queue available for VQ");
-		if (qdma_dev->vqs[i].status_ring)
-			rte_ring_free(qdma_dev->vqs[i].status_ring);
+		rte_ring_free(qdma_dev->vqs[i].status_ring);
 		qdma_dev->vqs[i].status_ring = NULL;
 		rte_spinlock_unlock(&qdma_dev->lock);
drivers/raw/dpaa2_qdma/dpaa2_qdma.c +2 -5
 		return -ENODEV;
@@ -1516,14 +1513,12 @@ dpaa2_qdma_queue_release(struct rte_rawdev
 *rawdev,
 	if (qdma_vq->exclusive_hw_queue)
 		free_hw_queue(qdma_vq->hw_queue);
 	else {
-		if (qdma_vq->status_ring)
-			rte_ring_free(qdma_vq->status_ring);
+		rte_ring_free(qdma_vq->status_ring);
 
 		put_hw_queue(qdma_vq->hw_queue);
 	}
 
-	if (qdma_vq->fle_pool)
-		rte_mempool_free(qdma_vq->fle_pool);
+	rte_mempool_free(qdma_vq->fle_pool);
 
 	memset(qdma_vq, 0, sizeof(struct qdma_virt_queue));
 
--

2.30.2

#189 lore raw

PATCH v2 71/83 raw/ifpga: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/raw/ifpga/ifpga_rawdev.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
drivers/raw/ifpga/ifpga_rawdev.c +3 -6
index 0eae0c9477b6..c68e378dc3ce 100644
@@ -836,8 +836,7 @@ rte_fpga_do_pr(struct rte_rawdev *rawdev, int port_id,
 	}
 
 free_buffer:
-	if (buf_to_free)
-		rte_free(buf_to_free);
+	rte_free(buf_to_free);
 close_fd:
 	close(file_fd);
 	file_fd = 0;
@@ -1739,10 +1738,8 @@ ifpga_cfg_probe(struct rte_vdev_device *dev)
 	ret = rte_eal_hotplug_add(RTE_STR(IFPGA_BUS_NAME),
 			dev_name, devargs->args);
 end:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
-	if (name)
-		free(name);
+	rte_kvargs_free(kvlist);
+	free(name);
 
 	return ret;
 }
Signature · 1 line
2.30.2
#190 lore raw

PATCH v2 72/83 raw/skeleton: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/raw/skeleton/skeleton_rawdev_test.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/raw/skeleton/skeleton_rawdev_test.c +2 -4
index 484468eeb460..693b24c415de 100644
@@ -395,13 +395,11 @@ test_rawdev_enqdeq(void)
 	RTE_TEST_ASSERT_EQUAL((unsigned int)ret, count,
 			      "Unable to dequeue buffers");
 
-	if (deq_buffers)
-		free(deq_buffers);
+	free(deq_buffers);
 
 	return TEST_SUCCESS;
 cleanup:
-	if (buffers[0].buf_addr)
-		free(buffers[0].buf_addr);
+	free(buffers[0].buf_addr);
 
 	return TEST_FAILED;
 }
Signature · 1 line
2.30.2
#191 lore raw

PATCH v2 73/83 regex/cn9k: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/regex/cn9k/cn9k_regexdev.c          | 6 ++----
 drivers/regex/cn9k/cn9k_regexdev_compiler.c | 3 +--
 2 files changed, 3 insertions(+), 6 deletions(-)
drivers/regex/cn9k/cn9k_regexdev.c +2 -4
index 32d20c1be82b..56c862c5a76c 100644
@@ -256,10 +256,8 @@ ree_dev_fini(struct rte_regexdev *dev)
 		cn9k_err("Could not detach queues");
 
 	/* TEMP : should be in lib */
-	if (data->queue_pairs)
-		rte_free(data->queue_pairs);
-	if (data->rules)
-		rte_free(data->rules);
+	rte_free(data->queue_pairs);
+	rte_free(data->rules);
 
 	roc_ree_dev_fini(vf);
 
drivers/regex/cn9k/cn9k_regexdev_compiler.c +1 -2
index 935b8a53b459..60f1c1b4c4d8 100644
@@ -214,8 +214,7 @@ cn9k_ree_rule_db_compile_prog(struct rte_regexdev *dev)
 	rxp_free_structs(NULL, NULL, NULL, NULL, NULL, &rof, NULL, &rofi, NULL,
 			1);
 
-	if (rule_db)
-		rte_free(rule_db);
+	rte_free(rule_db);
 
 	return ret;
 }
Signature · 1 line
2.30.2
#192 lore raw

PATCH v2 74/83 regex/mlx5: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/regex/mlx5/mlx5_regex.c | 3 +--
 drivers/regex/mlx5/mlx5_rxp.c   | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)
drivers/regex/mlx5/mlx5_regex.c +1 -2
index e5a12fb3cc4d..48e39f6b8844 100644
@@ -127,8 +127,7 @@ mlx5_regex_dev_probe(struct mlx5_common_device *cdev)
 	if (priv->regexdev)
 		rte_regexdev_unregister(priv->regexdev);
 dev_error:
-	if (priv)
-		rte_free(priv);
+	rte_free(priv);
 	return -rte_errno;
 }
 
drivers/regex/mlx5/mlx5_rxp.c +1 -2
index 5ead3ca341ad..99db1e4a865c 100644
@@ -166,7 +166,6 @@ mlx5_regex_configure(struct rte_regexdev *dev,
 		DRV_LOG(DEBUG, "Regex config without rules programming!");
 	return 0;
 configure_error:
-	if (priv->qps)
-		rte_free(priv->qps);
+	rte_free(priv->qps);
 	return -rte_errno;
 }
Signature · 1 line
2.30.2
#193 lore raw

PATCH v2 75/83 vdpa/ifc: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/vdpa/ifc/ifcvf_vdpa.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
drivers/vdpa/ifc/ifcvf_vdpa.c +3 -6
index 3853c4cf7e85..9f05595b6b34 100644
@@ -226,8 +226,7 @@ ifcvf_dma_map(struct ifcvf_internal *internal, bool do_map)
 	}
 
 exit:
-	if (mem)
-		free(mem);
+	free(mem);
 	return ret;
 }
 
@@ -253,8 +252,7 @@ hva_to_gpa(int vid, uint64_t hva)
 	}
 
 exit:
-	if (mem)
-		free(mem);
+	free(mem);
 	return gpa;
 }
 
@@ -661,8 +659,7 @@ m_ifcvf_start(struct ifcvf_internal *internal)
 
 error:
 	for (i = 0; i < nr_vring; i++)
-		if (internal->m_vring[i].desc)
-			rte_free(internal->m_vring[i].desc);
+		rte_free(internal->m_vring[i].desc);
 
 	return -1;
 }
Signature · 1 line
2.30.2
Reviewed-by on v2 75/83
#194 lore raw

RE: [PATCH v2 75/83] vdpa/ifc: remove unnecessary NULL checks

Quoted 51 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Tuesday, January 25, 2022 1:47 AM
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Wang, Xiao W <[email protected]>
Subject: [PATCH v2 75/83] vdpa/ifc: remove unnecessary NULL checks

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/vdpa/ifc/ifcvf_vdpa.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
drivers/vdpa/ifc/ifcvf_vdpa.c +3 -7
index 3853c4cf7e85..9f05595b6b34 100644
@@ -226,8 +226,7 @@ ifcvf_dma_map(struct ifcvf_internal *internal, bool do_map)
 	}
 
 exit:
-	if (mem)
-		free(mem);
+	free(mem);
 	return ret;
 }
 
@@ -253,8 +252,7 @@ hva_to_gpa(int vid, uint64_t hva)
 	}
 
 exit:
-	if (mem)
-		free(mem);
+	free(mem);
 	return gpa;
 }
 
@@ -661,8 +659,7 @@ m_ifcvf_start(struct ifcvf_internal *internal)
 
 error:
 	for (i = 0; i < nr_vring; i++)
-		if (internal->m_vring[i].desc)
-			rte_free(internal->m_vring[i].desc);
+		rte_free(internal->m_vring[i].desc);
 
 	return -1;
 }
--
Quoted 1 line

2.30.2

#195 lore raw

PATCH v2 76/83 vdpa/mlx5: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/vdpa/mlx5/mlx5_vdpa_mem.c   | 3 +--
 drivers/vdpa/mlx5/mlx5_vdpa_virtq.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)
drivers/vdpa/mlx5/mlx5_vdpa_mem.c +1 -2
index 130d201a85f5..599079500b03 100644
@@ -283,8 +283,7 @@ mlx5_vdpa_mem_register(struct mlx5_vdpa_priv *priv)
 	priv->gpa_mkey_index = entry->mkey->id;
 	return 0;
 error:
-	if (entry)
-		rte_free(entry);
+	rte_free(entry);
 	mlx5_vdpa_mem_dereg(priv);
 	rte_errno = -ret;
 	return ret;
drivers/vdpa/mlx5/mlx5_vdpa_virtq.c +1 -2
index 2f32aef67fbc..3416797d289c 100644
@@ -91,8 +91,7 @@ mlx5_vdpa_virtq_unset(struct mlx5_vdpa_virtq *virtq)
 		if (virtq->umems[i].obj)
 			claim_zero(mlx5_glue->devx_umem_dereg
 							 (virtq->umems[i].obj));
-		if (virtq->umems[i].buf)
-			rte_free(virtq->umems[i].buf);
+		rte_free(virtq->umems[i].buf);
 	}
 	memset(&virtq->umems, 0, sizeof(virtq->umems));
 	if (virtq->eqp.fw_qp)
Signature · 1 line
2.30.2
#196 lore raw

PATCH v2 77/83 compressdev: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/compressdev/rte_compressdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
lib/compressdev/rte_compressdev.c +1 -2
index 2e9218af68f6..d4f7d4d3daf2 100644
@@ -405,8 +405,7 @@ rte_compressdev_queue_pairs_release(struct rte_compressdev *dev)
 			return ret;
 	}
 
-	if (dev->data->queue_pairs != NULL)
-		rte_free(dev->data->queue_pairs);
+	rte_free(dev->data->queue_pairs);
 	dev->data->queue_pairs = NULL;
 	dev->data->nb_queue_pairs = 0;
 
Signature · 1 line
2.30.2
Acked-by on v2 77/83
#197 lore raw

RE: [PATCH v2 77/83] compressdev: remove unnecessary NULL checks

Quoted 33 lines

-----Original Message-----
From: Stephen Hemminger <[email protected]>
Sent: Monday, January 24, 2022 5:47 PM
To: [email protected]
Cc: Stephen Hemminger <[email protected]>; Zhang, Roy Fan <[email protected]>; Ashish Gupta <[email protected]>
Subject: [PATCH v2 77/83] compressdev: remove unnecessary NULL checks

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/compressdev/rte_compressdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
lib/compressdev/rte_compressdev.c +1 -3
index 2e9218af68f6..d4f7d4d3daf2 100644
@@ -405,8 +405,7 @@ rte_compressdev_queue_pairs_release(struct
 rte_compressdev *dev)
 			return ret;
 	}
 
-	if (dev->data->queue_pairs != NULL)
-		rte_free(dev->data->queue_pairs);
+	rte_free(dev->data->queue_pairs);
 	dev->data->queue_pairs = NULL;
 	dev->data->nb_queue_pairs = 0;
 
--
Quoted 1 line

2.30.2

#198 lore raw

PATCH v2 78/83 ethdev: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/ethdev/rte_ethdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
lib/ethdev/rte_ethdev.c +1 -2
index a1d475a29295..98312fa157f6 100644
@@ -6036,8 +6036,7 @@ rte_eth_devargs_parse(const char *dargs, struct rte_eth_devargs *eth_da)
 	}
 
 parse_cleanup:
-	if (args.str)
-		free(args.str);
+	free(args.str);
 
 	return result;
 }
Signature · 1 line
2.30.2
#199 lore raw

PATCH v2 79/83 graph: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/graph/graph_stats.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
lib/graph/graph_stats.c +1 -2
index aa70929dc32e..65e12d46a313 100644
@@ -233,8 +233,7 @@ cluster_add(struct cluster *cluster, struct graph *graph)
 static void
 cluster_fini(struct cluster *cluster)
 {
-	if (cluster->graphs)
-		free(cluster->graphs);
+	free(cluster->graphs);
 }
 
 static int
Signature · 1 line
2.30.2
#200 lore raw

PATCH v2 80/83 ipsec: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/ipsec/ipsec_sad.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
lib/ipsec/ipsec_sad.c +1 -2
index 531e1e323cdc..af4b1ce757d2 100644
@@ -440,8 +440,7 @@ rte_ipsec_sad_destroy(struct rte_ipsec_sad *sad)
 	rte_hash_free(sad->hash[RTE_IPSEC_SAD_SPI_DIP]);
 	rte_hash_free(sad->hash[RTE_IPSEC_SAD_SPI_DIP_SIP]);
 	rte_free(sad);
-	if (te != NULL)
-		rte_free(te);
+	rte_free(te);
 }
 
 /*
Signature · 1 line
2.30.2
#201 lore raw

PATCH v2 81/83 port: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/port/rte_port_source_sink.c | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)
lib/port/rte_port_source_sink.c +7 -14
index 68575c98338d..79042d13ff66 100644
@@ -163,14 +163,10 @@ pcap_source_load(struct rte_port_source *port,
 	return 0;
 
 error_exit:
-	if (pkt_len_aligns)
-		rte_free(pkt_len_aligns);
-	if (port->pkt_len)
-		rte_free(port->pkt_len);
-	if (port->pkts)
-		rte_free(port->pkts);
-	if (port->pkt_buff)
-		rte_free(port->pkt_buff);
+	rte_free(pkt_len_aligns);
+	rte_free(port->pkt_len);
+	rte_free(port->pkts);
+	rte_free(port->pkt_buff);
 
 	return -1;
 }
@@ -242,12 +238,9 @@ rte_port_source_free(void *port)
 	if (p == NULL)
 		return 0;
 
-	if (p->pkt_len)
-		rte_free(p->pkt_len);
-	if (p->pkts)
-		rte_free(p->pkts);
-	if (p->pkt_buff)
-		rte_free(p->pkt_buff);
+	rte_free(p->pkt_len);
+	rte_free(p->pkts);
+	rte_free(p->pkt_buff);
 
 	rte_free(p);
 
Signature · 1 line
2.30.2
#202 lore raw

PATCH v2 82/83 power: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/power/rte_power_empty_poll.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
lib/power/rte_power_empty_poll.c +1 -2
index c4b5de9601cf..2261ce7820f6 100644
@@ -457,8 +457,7 @@ rte_power_empty_poll_stat_free(void)
 
 	RTE_LOG(INFO, POWER, "Close the Empty Poll\n");
 
-	if (ep_params != NULL)
-		rte_free(ep_params);
+	rte_free(ep_params);
 }
 
 int
Signature · 1 line
2.30.2
Acked-by on v2 82/83
#203 lore raw

Re: [PATCH v2 82/83] power: remove unnecessary NULL checks

Quoted 13 lines · Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
  lib/power/rte_power_empty_poll.c | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)
lib/power/rte_power_empty_poll.c +0 -0
index c4b5de9601cf..2261ce7820f6 100644

lib/power/rte_power_empty_poll.c rte_power_empty_poll_stat_free(void) · line 463

Quoted 9 lines
lib/power/rte_power_empty_poll.c +1 -2
@@ -457,8 +457,7 @@ rte_power_empty_poll_stat_free(void)
 
  	RTE_LOG(INFO, POWER, "Close the Empty Poll\n");
 
-	if (ep_params != NULL)
-		rte_free(ep_params);
+	rte_free(ep_params);
  }
 
  int
#204 lore raw

PATCH v2 83/83 reorder: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/reorder/rte_reorder.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
lib/reorder/rte_reorder.c +2 -4
index 9445853b79cc..bc0241bfb3fd 100644
@@ -192,10 +192,8 @@ rte_reorder_free_mbufs(struct rte_reorder_buffer *b)
 
 	/* Free up the mbufs of order buffer & ready buffer */
 	for (i = 0; i < b->order_buf.size; i++) {
-		if (b->order_buf.entries[i])
-			rte_pktmbuf_free(b->order_buf.entries[i]);
-		if (b->ready_buf.entries[i])
-			rte_pktmbuf_free(b->ready_buf.entries[i]);
+		rte_pktmbuf_free(b->order_buf.entries[i]);
+		rte_pktmbuf_free(b->ready_buf.entries[i]);
 	}
 }
 
Signature · 1 line
2.30.2
#205 lore raw
In reply to Stephen Hemminger

24/01/2022 18:45, Stephen Hemminger:

Quoted 3 lines

Stephen Hemminger (83):
lib: update documentation of XXX_free() functions devtools/cocci: add script to fix unnecessary null checks

I think it is good to have the first 2 patches separate, but the rest could go in a single third patch.

#206 lore raw
Quoted 9 lines · On Fri, 28 Jan 2022 22:49:31 +0100 Thomas Monjalon <[email protected]> wrote:

24/01/2022 18:45, Stephen Hemminger:

Quoted 3 lines

Stephen Hemminger (83):
lib: update documentation of XXX_free() functions devtools/cocci: add script to fix unnecessary null checks

I think it is good to have the first 2 patches separate, but the rest could go in a single third patch.

Split up to get subsystem reviewers attention, if you want can merge in next version

#207 lore raw

v3 cover remove unnecessary null checks

In reply to Stephen Hemminger

While working on a new driver, noticed that some drivers always call free routines (correct) and others conditionally call free routines if not null (redundant check). The extra if(e != NULL) type check is unneeded and adds extra code. Better to have all the code consistent.

The Linux kernel has automated this kind of fixup using coccinelle, and this patchset creates a coccinelle script to do the transformation; then has individual patches for each sub component.

In one driver dpaaxx, the change suggested a further change to the compat macros to make them even simpler.

v3
- consolidate patches into logical groups

v2
- add documentation change patch
- spelling fix to coccinelle script patch
- suggested whitespace fix to igc and ixgbe patch

Stephen Hemminger (36):
lib: update documentation of XXX_free() functions devtools/cocci: add script to fix unnecessary null checks
eal: remove unnecessary NULL checks
ethdev: remove unnecessary NULL checks
examples: remove unnecessary NULL checks
vhost: remove unnecessary NULL checks
app: remove unnecessary NULL checks
baseband/*: remove unnecessary NULL checks bus/*: remove unnecessary NULL checks
common/*: remove unnecessary NULL checks compress/*: remove unnecessary NULL checks
crypto: remove unnecessary NULL checks
event/sw: remove unnecessary NULL checks net/axgbe: remove unnecessary NULL checks net/bnx*: remove unnecessary NULL checks net/cnxk: remove unnecessary NULL checks net/cxgbe: remove unnecessary NULL checks net/dpaa*: remove unnecessary NULL checks net/ena: remove unnecessary NULL checks net/hinic: remove unnecessary NULL checks net/hns3: remove unnecessary NULL checks
net/i*: remove unnecessary NULL checks
net/mlx*: remove unnecessary NULL checks net/mvpp2: remove unnecessary NULL checks net/netvsc: remove unnecessary NULL checks net/octeontx: remove unnecessary NULL checks net/qede: remove unnecessary NULL checks net/txgbe: remove unnecessary NULL checks net/vdev_netvsc: remove unnecessary NULL checks net/virtio: remove unnecessary NULL checks net/other: remove unnecessary NULL checks
raw/*: remove unnecessary NULL checks
regex/*: remove unnecessary NULL checks
vdpa/*: remove unnecessary NULL checks
compressdev: remove unnecessary NULL checks
other: remove unnecessary NULL checks

 app/pdump/main.c                              |  9 ++--
 app/test-crypto-perf/cperf_test_latency.c     |  3 +-
 .../cperf_test_pmd_cyclecount.c               |  9 ++--
 app/test-crypto-perf/cperf_test_throughput.c  |  3 +-
 .../cperf_test_vector_parsing.c               |  6 +--
 app/test-crypto-perf/cperf_test_verify.c      |  3 +-
 app/test-pmd/cmd_flex_item.c                  |  3 +-
 app/test-pmd/cmdline.c                        |  3 +-
 app/test-pmd/testpmd.c                        |  3 +-
 app/test-regex/main.c                         | 12 ++---
 app/test/test_cksum.c                         |  3 +-
 app/test/test_compressdev.c                   |  3 +-
 app/test/test_cryptodev.h                     |  3 +-
 app/test/test_cryptodev_asym.c                |  3 +-
 app/test/test_cryptodev_blockcipher.c         | 12 ++---
 app/test/test_func_reentrancy.c               | 15 +++----
 app/test/test_hash.c                          | 15 +++----
 app/test/test_hash_perf.c                     |  7 +--
 app/test/test_link_bonding.c                  |  9 ++--
 app/test/test_link_bonding_mode4.c            |  3 +-
 app/test/test_malloc.c                        |  5 +--
 app/test/test_mbuf.c                          | 45 +++++++------------
 app/test/test_pcapng.c                        |  3 +-
 app/test/test_reorder.c                       | 15 +++----
 app/test/virtual_pmd.c                        |  3 +-
 devtools/cocci/nullfree.cocci                 | 33 ++++++++++++++
 drivers/baseband/acc100/rte_acc100_pmd.c      |  3 +-
 drivers/baseband/la12xx/bbdev_la12xx.c        |  3 +-
 drivers/baseband/null/bbdev_null.c            |  3 +-
 .../baseband/turbo_sw/bbdev_turbo_software.c  |  3 +-
 drivers/bus/fslmc/fslmc_bus.c                 |  6 +--
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c      |  6 +--
 drivers/bus/ifpga/ifpga_bus.c                 | 12 ++---
 drivers/bus/pci/pci_params.c                  |  3 +-
 drivers/bus/pci/windows/pci.c                 |  3 +-
 drivers/bus/pci/windows/pci_netuio.c          |  3 +-
 drivers/common/cpt/cpt_ucode_asym.h           |  6 +--
 drivers/common/dpaax/compat.h                 | 11 +----
 drivers/common/mlx5/mlx5_common_mr.c          |  3 +-
 drivers/common/mlx5/mlx5_common_pci.c         |  3 +-
 drivers/common/qat/qat_qp.c                   |  9 ++--
 drivers/compress/mlx5/mlx5_compress.c         |  3 +-
 drivers/compress/octeontx/otx_zip_pmd.c       |  9 ++--
 drivers/crypto/armv8/rte_armv8_pmd_ops.c      |  3 +-
 drivers/crypto/ccp/ccp_dev.c                  |  3 +-
 drivers/crypto/ccp/ccp_pmd_ops.c              |  3 +-
 drivers/crypto/cnxk/cnxk_ae.h                 |  6 +--
 drivers/crypto/ipsec_mb/ipsec_mb_ops.c        |  3 +-
 drivers/crypto/mvsam/rte_mrvl_pmd_ops.c       |  6 +--
 drivers/crypto/null/null_crypto_pmd_ops.c     |  6 +--
 drivers/crypto/octeontx/otx_cryptodev_ops.c   |  3 +-
 drivers/crypto/openssl/rte_openssl_pmd_ops.c  |  6 +--
 drivers/crypto/scheduler/scheduler_pmd_ops.c  |  6 +--
 drivers/crypto/virtio/virtqueue.c             |  6 +--
 drivers/event/sw/sw_evdev.c                   |  3 +-
 drivers/net/axgbe/axgbe_rxtx.c                |  6 +--
 drivers/net/bnx2x/bnx2x_rxtx.c                |  6 +--
 drivers/net/bnxt/bnxt_ethdev.c                |  3 +-
 drivers/net/bonding/rte_eth_bond_pmd.c        |  3 +-
 drivers/net/cnxk/cnxk_ethdev.c                |  6 +--
 drivers/net/cxgbe/cxgbe_main.c                |  3 +-
 drivers/net/dpaa/dpaa_ethdev.c                |  3 +-
 drivers/net/dpaa/fmlib/fm_lib.c               |  3 +-
 drivers/net/dpaa2/dpaa2_ethdev.c              |  3 +-
 drivers/net/dpaa2/dpaa2_mux.c                 |  3 +-
 drivers/net/dpaa2/dpaa2_ptp.c                 |  3 +-
 drivers/net/ena/ena_ethdev.c                  | 18 +++-----
 drivers/net/hinic/hinic_pmd_ethdev.c          |  3 +-
 drivers/net/hns3/hns3_rxtx.c                  |  9 ++--
 drivers/net/i40e/i40e_ethdev.c                | 27 ++++-------
 drivers/net/i40e/i40e_rxtx.c                  |  3 +-
 drivers/net/iavf/iavf_rxtx.c                  |  3 +-
 drivers/net/ice/ice_fdir_filter.c             |  6 +--
 drivers/net/igc/igc_flow.c                    |  5 +--
 drivers/net/ixgbe/ixgbe_ethdev.c              | 12 ++---
 drivers/net/ixgbe/ixgbe_rxtx.c                |  3 +-
 drivers/net/memif/rte_eth_memif.c             |  6 +--
 drivers/net/mlx4/mlx4_mr.c                    |  3 +-
 drivers/net/mlx5/mlx5_flow.c                  |  3 +-
 drivers/net/mvpp2/mrvl_qos.c                  |  3 +-
 drivers/net/netvsc/hn_rxtx.c                  |  6 +--
 drivers/net/null/rte_eth_null.c               |  3 +-
 drivers/net/octeontx/octeontx_ethdev.c        |  3 +-
 drivers/net/octeontx/octeontx_ethdev_ops.c    |  3 +-
 drivers/net/qede/qede_main.c                  |  3 +-
 drivers/net/qede/qede_rxtx.c                  |  6 +--
 drivers/net/softnic/rte_eth_softnic_cli.c     | 12 ++---
 .../net/softnic/rte_eth_softnic_cryptodev.c   |  6 +--
 drivers/net/softnic/rte_eth_softnic_thread.c  |  6 +--
 drivers/net/tap/tap_flow.c                    |  9 ++--
 drivers/net/txgbe/txgbe_ethdev.c              | 12 ++---
 drivers/net/vdev_netvsc/vdev_netvsc.c         |  3 +-
 drivers/net/virtio/virtio_user_ethdev.c       | 12 ++---
 drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c         |  3 +-
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c           | 15 +++----
 drivers/raw/ifpga/ifpga_rawdev.c              |  9 ++--
 drivers/raw/skeleton/skeleton_rawdev_test.c   |  6 +--
 drivers/regex/cn9k/cn9k_regexdev.c            |  6 +--
 drivers/regex/cn9k/cn9k_regexdev_compiler.c   |  3 +-
 drivers/regex/mlx5/mlx5_regex.c               |  3 +-
 drivers/regex/mlx5/mlx5_rxp.c                 |  3 +-
 drivers/vdpa/ifc/ifcvf_vdpa.c                 |  9 ++--
 drivers/vdpa/mlx5/mlx5_vdpa_mem.c             |  3 +-
 drivers/vdpa/mlx5/mlx5_vdpa_virtq.c           |  3 +-
 examples/fips_validation/fips_dev_self_test.c | 18 +++-----
 examples/fips_validation/fips_validation.c    |  3 +-
 examples/fips_validation/main.c               | 36 +++++----------
 examples/ip_pipeline/cli.c                    | 12 ++---
 examples/ip_pipeline/cryptodev.c              |  6 +--
 examples/ip_pipeline/thread.c                 |  6 +--
 examples/l2fwd-cat/cat.c                      |  3 +-
 examples/pipeline/thread.c                    |  6 +--
 examples/vhost_blk/vhost_blk.c                |  3 +-
 lib/compressdev/rte_compressdev.c             |  3 +-
 lib/eal/common/eal_common_devargs.c           |  6 +--
 lib/eal/common/eal_common_memzone.c           |  3 +-
 lib/eal/common/eal_common_options.c           |  9 ++--
 lib/eal/common/eal_common_trace_ctf.c         |  6 +--
 lib/eal/freebsd/eal.c                         |  4 +-
 lib/eal/linux/eal.c                           | 10 ++---
 lib/eal/windows/eal_alarm.c                   |  3 +-
 lib/eal/windows/eal_memory.c                  |  3 +-
 lib/ethdev/rte_ethdev.c                       |  3 +-
 lib/graph/graph_stats.c                       |  3 +-
 lib/hash/rte_hash.h                           |  4 +-
 lib/ipsec/ipsec_sad.c                         |  3 +-
 lib/mempool/rte_mempool.h                     |  1 +
 lib/port/rte_port_source_sink.c               | 21 +++------
 lib/power/rte_power_empty_poll.c              |  3 +-
 lib/reorder/rte_reorder.c                     |  6 +--
 lib/ring/rte_ring.h                           |  3 +-
 lib/vhost/iotlb.c                             |  3 +-
 lib/vhost/vhost_crypto.c                      |  6 +--
 lib/vhost/vhost_user.c                        |  9 ++--
 134 files changed, 312 insertions(+), 560 deletions(-)
 create mode 100644 devtools/cocci/nullfree.cocci
Signature · 1 line
2.34.1
#208 lore raw

PATCH v3 1/36 lib: update documentation of XXX_free() functions

These functions all behave like libc free() and do nothing if handed a NULL pointer. The code is already doing this, this patch just documents the behavior.

---
 lib/hash/rte_hash.h       | 4 +++-
 lib/mempool/rte_mempool.h | 1 +
 lib/ring/rte_ring.h       | 3 ++-
 3 files changed, 6 insertions(+), 2 deletions(-)
lib/hash/rte_hash.h +3 -1
index 6067aad95431..7fa9702742a9 100644
@@ -174,8 +174,10 @@ rte_hash_find_existing(const char *name);
 
 /**
  * De-allocate all memory used by hash table.
+ *
  * @param h
- *   Hash table to free
+ *   Hash table to free, if NULL, the function does nothing.
+ *
  */
 void
 rte_hash_free(struct rte_hash *h);
lib/mempool/rte_mempool.h +1 -0
index 1e7a3c15273c..1d3cdf7f2209 100644
@@ -1101,6 +1101,7 @@ rte_mempool_create_empty(const char *name, unsigned n, unsigned elt_size,
  *
  * @param mp
  *   A pointer to the mempool structure.
+ *   If NULL then, the function does nothing.
  */
 void
 rte_mempool_free(struct rte_mempool *mp);
lib/ring/rte_ring.h +2 -1
index ab6b4244c89e..980e92e59493 100644
@@ -193,7 +193,8 @@ struct rte_ring *rte_ring_create(const char *name, unsigned int count,
  * De-allocate all memory used by the ring.
  *
  * @param r
- *   Ring to free
+ *   Ring to free.
+ *   If NULL then, the function does nothing.
  */
 void rte_ring_free(struct rte_ring *r);
 
Signature · 1 line
2.34.1
#209 lore raw

PATCH v3 2/36 devtools/cocci: add script to fix unnecessary null checks

In reply to Stephen Hemminger

This script is based on the idea of the nullfree script in the Linux kernel. It finds cases where a check for null pointer is done, but is unnecessary because the function already handles NULL pointer.

Basic example:

       if (x->buf)
           rte_free(x->buf);
can be reduced to:
       rte_free(x->buf);
---
 devtools/cocci/nullfree.cocci | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 devtools/cocci/nullfree.cocci
devtools/cocci/nullfree.cocci new file +33 -0
new file mode 100644
index 000000000000..363b6149ac28
@@ -0,0 +1,33 @@
+//
+// Remove unnecessary NULL pointer checks before free functions
+// All these functions work like libc free which allows
+// free(NULL) as a no-op.
+//
+@@
+expression E;
+@@
+(
+- if (E != NULL) free(E);
++ free(E);
+|
+- if (E != NULL) rte_bitmap_free(E);
++ rte_bitmap_free(E);
+|
+- if (E != NULL) rte_free(E);
++ rte_free(E);
+|
+- if (E != NULL) rte_hash_free(E);
++ rte_hash_free(E);
+|
+- if (E != NULL) rte_ring_free(E);
++ rte_ring_free(E);
+|
+- if (E != NULL) rte_pktmbuf_free(E);
++ rte_pktmbuf_free(E);
+|
+- if (E != NULL) rte_mempool_free(E);
++ rte_mempool_free(E);
+|
+- if (E != NULL) rte_kvargs_free(E);
++ rte_kvargs_free(E);
+)
Signature · 1 line
2.34.1
#210 lore raw

PATCH v3 3/36 eal: remove unnecessary NULL checks

In reply to Stephen Hemminger

Functions like free, rte_free, and rte_mempool_free already handle NULL pointer so the checks here are not necessary.

---
 lib/eal/common/eal_common_devargs.c   |  6 ++----
 lib/eal/common/eal_common_memzone.c   |  3 +--
 lib/eal/common/eal_common_options.c   |  9 +++------
 lib/eal/common/eal_common_trace_ctf.c |  6 ++----
 lib/eal/freebsd/eal.c                 |  4 +---
 lib/eal/linux/eal.c                   | 10 +++-------
 lib/eal/windows/eal_alarm.c           |  3 +--
 lib/eal/windows/eal_memory.c          |  3 +--
 8 files changed, 14 insertions(+), 30 deletions(-)
lib/eal/common/eal_common_devargs.c +2 -4
index 8c7650cf6c27..69004b0a2d2f 100644
@@ -161,8 +161,7 @@ rte_devargs_layers_parse(struct rte_devargs *devargs,
 
 get_out:
 	for (i = 0; i < RTE_DIM(layers); i++) {
-		if (layers[i].kvlist)
-			rte_kvargs_free(layers[i].kvlist);
+		rte_kvargs_free(layers[i].kvlist);
 	}
 	if (ret != 0) {
 		if (allocated_data) {
@@ -285,8 +284,7 @@ rte_devargs_reset(struct rte_devargs *da)
 {
 	if (da == NULL)
 		return;
-	if (da->data)
-		free(da->data);
+	free(da->data);
 	da->data = NULL;
 }
 
lib/eal/common/eal_common_memzone.c +1 -2
index ecde9441ee90..9a0c5309ac7e 100644
@@ -300,8 +300,7 @@ rte_memzone_free(const struct rte_memzone *mz)
 
 	rte_rwlock_write_unlock(&mcfg->mlock);
 
-	if (addr != NULL)
-		rte_free(addr);
+	rte_free(addr);
 
 	rte_eal_trace_memzone_free(name, addr, ret);
 	return ret;
lib/eal/common/eal_common_options.c +3 -6
index 45d393b3937e..ff44d2124bab 100644
@@ -1989,12 +1989,9 @@ compute_ctrl_threads_cpuset(struct internal_config *internal_cfg)
 int
 eal_cleanup_config(struct internal_config *internal_cfg)
 {
-	if (internal_cfg->hugefile_prefix != NULL)
-		free(internal_cfg->hugefile_prefix);
-	if (internal_cfg->hugepage_dir != NULL)
-		free(internal_cfg->hugepage_dir);
-	if (internal_cfg->user_mbuf_pool_ops_name != NULL)
-		free(internal_cfg->user_mbuf_pool_ops_name);
+	free(internal_cfg->hugefile_prefix);
+	free(internal_cfg->hugepage_dir);
+	free(internal_cfg->user_mbuf_pool_ops_name);
 
 	return 0;
 }
lib/eal/common/eal_common_trace_ctf.c +2 -4
index 33e419aac7fb..3b83bcdf57fd 100644
@@ -52,8 +52,7 @@ meta_copy(char **meta, int *offset, char *str, int rc)
 	return rc;
 
 free_str:
-	if (str)
-		free(str);
+	free(str);
 	return -ENOMEM;
 }
 
@@ -291,8 +290,7 @@ trace_metadata_create(void)
 	return 0;
 
 fail:
-	if (meta)
-		free(meta);
+	free(meta);
 	return -EBADF;
 }
 
lib/eal/freebsd/eal.c +1 -3
index a1cd2462db1b..00ba32f1d664 100644
@@ -544,9 +544,7 @@ eal_parse_args(int argc, char **argv)
 				RTE_LOG(ERR, EAL, "Could not store mbuf pool ops name\n");
 			else {
 				/* free old ops name */
-				if (internal_conf->user_mbuf_pool_ops_name !=
-						NULL)
-					free(internal_conf->user_mbuf_pool_ops_name);
+				free(internal_conf->user_mbuf_pool_ops_name);
 
 				internal_conf->user_mbuf_pool_ops_name =
 						ops_name;
lib/eal/linux/eal.c +3 -7
index 9c8395ab14d0..68fcf86a2e4c 100644
@@ -730,8 +730,7 @@ eal_parse_args(int argc, char **argv)
 				RTE_LOG(ERR, EAL, "Could not store hugepage directory\n");
 			else {
 				/* free old hugepage dir */
-				if (internal_conf->hugepage_dir != NULL)
-					free(internal_conf->hugepage_dir);
+				free(internal_conf->hugepage_dir);
 				internal_conf->hugepage_dir = hdir;
 			}
 			break;
@@ -743,8 +742,7 @@ eal_parse_args(int argc, char **argv)
 				RTE_LOG(ERR, EAL, "Could not store file prefix\n");
 			else {
 				/* free old prefix */
-				if (internal_conf->hugefile_prefix != NULL)
-					free(internal_conf->hugefile_prefix);
+				free(internal_conf->hugefile_prefix);
 				internal_conf->hugefile_prefix = prefix;
 			}
 			break;
@@ -804,9 +802,7 @@ eal_parse_args(int argc, char **argv)
 				RTE_LOG(ERR, EAL, "Could not store mbuf pool ops name\n");
 			else {
 				/* free old ops name */
-				if (internal_conf->user_mbuf_pool_ops_name !=
-						NULL)
-					free(internal_conf->user_mbuf_pool_ops_name);
+				free(internal_conf->user_mbuf_pool_ops_name);
 
 				internal_conf->user_mbuf_pool_ops_name =
 						ops_name;
lib/eal/windows/eal_alarm.c +1 -2
index 103c1f909da3..51fe752c16d4 100644
@@ -162,8 +162,7 @@ rte_eal_alarm_set(uint64_t us, rte_eal_alarm_callback cb_fn, void *cb_arg)
 fail:
 	if (timer != NULL)
 		CloseHandle(timer);
-	if (ap != NULL)
-		free(ap);
+	free(ap);
 
 exit:
 	rte_eal_trace_alarm_set(us, cb_fn, cb_arg, ret);
lib/eal/windows/eal_memory.c +1 -2
index 2fd37d97085e..215d768e2c57 100644
@@ -190,8 +190,7 @@ eal_mem_virt2iova_init(void)
 	ret = 0;
 
 exit:
-	if (detail != NULL)
-		free(detail);
+	free(detail);
 	if (list != INVALID_HANDLE_VALUE)
 		SetupDiDestroyDeviceInfoList(list);
 
Signature · 1 line
2.34.1
#211 lore raw

PATCH v3 4/36 ethdev: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/ethdev/rte_ethdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
lib/ethdev/rte_ethdev.c +1 -2
index 29e21ad58003..cab7b7947eb7 100644
@@ -6036,8 +6036,7 @@ rte_eth_devargs_parse(const char *dargs, struct rte_eth_devargs *eth_da)
 	}
 
 parse_cleanup:
-	if (args.str)
-		free(args.str);
+	free(args.str);
 
 	return result;
 }
Signature · 1 line
2.34.1
#212 lore raw

PATCH v3 5/36 examples: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 examples/fips_validation/fips_dev_self_test.c | 18 ++++------
 examples/fips_validation/fips_validation.c    |  3 +-
 examples/fips_validation/main.c               | 36 +++++++------------
 examples/ip_pipeline/cli.c                    | 12 +++----
 examples/ip_pipeline/cryptodev.c              |  6 ++--
 examples/ip_pipeline/thread.c                 |  6 ++--
 examples/l2fwd-cat/cat.c                      |  3 +-
 examples/pipeline/thread.c                    |  6 ++--
 examples/vhost_blk/vhost_blk.c                |  3 +-
 9 files changed, 31 insertions(+), 62 deletions(-)
examples/fips_validation/fips_dev_self_test.c +6 -12
index b4eab05a9851..076e9de099c0 100644
@@ -1396,8 +1396,7 @@ check_aead_result(struct rte_crypto_op *op,
 	if (!mbuf)
 		return -1;
 
-	if (op->sym->aead.aad.data)
-		rte_free(op->sym->aead.aad.data);
+	rte_free(op->sym->aead.aad.data);
 
 	if (dir == self_test_dir_enc_auth_gen) {
 		src = vec->output.data;
@@ -1523,18 +1522,13 @@ static void
 fips_dev_auto_test_uninit(uint8_t dev_id,
 		struct fips_dev_auto_test_env *env)
 {
-	if (env->mbuf)
-		rte_pktmbuf_free(env->mbuf);
+	rte_pktmbuf_free(env->mbuf);
 	if (env->op)
 		rte_crypto_op_free(env->op);
-	if (env->mpool)
-		rte_mempool_free(env->mpool);
-	if (env->op_pool)
-		rte_mempool_free(env->op_pool);
-	if (env->sess_pool)
-		rte_mempool_free(env->sess_pool);
-	if (env->sess_priv_pool)
-		rte_mempool_free(env->sess_priv_pool);
+	rte_mempool_free(env->mpool);
+	rte_mempool_free(env->op_pool);
+	rte_mempool_free(env->sess_pool);
+	rte_mempool_free(env->sess_priv_pool);
 
 	rte_cryptodev_stop(dev_id);
 }
examples/fips_validation/fips_validation.c +1 -2
index 52a7bf952d46..94253eaee8bf 100644
@@ -344,8 +344,7 @@ fips_test_clear(void)
 		fclose(info.fp_rd);
 	if (info.fp_wr)
 		fclose(info.fp_wr);
-	if (info.one_line_text)
-		free(info.one_line_text);
+	free(info.one_line_text);
 	if (info.nb_vec_lines) {
 		uint32_t i;
 
examples/fips_validation/main.c +12 -24
index dc40bffe7d97..e06ae37567fd 100644
@@ -143,12 +143,9 @@ cryptodev_fips_validate_app_int(void)
 error_exit:
 
 	rte_mempool_free(env.mpool);
-	if (env.sess_mpool)
-		rte_mempool_free(env.sess_mpool);
-	if (env.sess_priv_mpool)
-		rte_mempool_free(env.sess_priv_mpool);
-	if (env.op_pool)
-		rte_mempool_free(env.op_pool);
+	rte_mempool_free(env.sess_mpool);
+	rte_mempool_free(env.sess_priv_mpool);
+	rte_mempool_free(env.op_pool);
 
 	return ret;
 }
@@ -523,8 +520,7 @@ prepare_data_mbufs(struct fips_val *val)
 	uint16_t nb_seg;
 	int ret = 0;
 
-	if (env.mbuf)
-		rte_pktmbuf_free(env.mbuf);
+	rte_pktmbuf_free(env.mbuf);
 
 	if (total_len > RTE_MBUF_MAX_NB_SEGS) {
 		RTE_LOG(ERR, USER1, "Data len %u too big\n", total_len);
@@ -598,8 +594,7 @@ prepare_data_mbufs(struct fips_val *val)
 	return 0;
 
 error_exit:
-	if (head)
-		rte_pktmbuf_free(head);
+	rte_pktmbuf_free(head);
 	return ret;
 }
 
@@ -656,8 +651,7 @@ prepare_auth_op(void)
 	if (ret < 0)
 		return ret;
 
-	if (env.digest)
-		rte_free(env.digest);
+	rte_free(env.digest);
 
 	env.digest = rte_zmalloc(NULL, vec.cipher_auth.digest.len,
 			RTE_CACHE_LINE_SIZE);
@@ -705,8 +699,7 @@ prepare_aead_op(void)
 		if (ret < 0)
 			return ret;
 
-		if (env.digest)
-			rte_free(env.digest);
+		rte_free(env.digest);
 		env.digest = rte_zmalloc(NULL, vec.aead.digest.len,
 				RTE_CACHE_LINE_SIZE);
 		if (!env.digest) {
@@ -1430,8 +1423,7 @@ fips_mct_tdes_test(void)
 		}
 	}
 
-	if (val.val)
-		free(val.val);
+	free(val.val);
 
 	return 0;
 }
@@ -1510,8 +1502,7 @@ fips_mct_aes_ecb_test(void)
 		}
 	}
 
-	if (val.val)
-		free(val.val);
+	free(val.val);
 
 	return 0;
 }
@@ -1619,8 +1610,7 @@ fips_mct_aes_test(void)
 			memcpy(vec.iv.val, val.val, AES_BLOCK_SIZE);
 	}
 
-	if (val.val)
-		free(val.val);
+	free(val.val);
 
 	return 0;
 }
@@ -1706,8 +1696,7 @@ fips_mct_sha_test(void)
 
 	rte_free(vec.pt.val);
 
-	if (val.val)
-		free(val.val);
+	free(val.val);
 
 	return 0;
 }
@@ -1851,8 +1840,7 @@ fips_test_one_file(void)
 		rte_free(env.digest);
 		env.digest = NULL;
 	}
-	if (env.mbuf)
-		rte_pktmbuf_free(env.mbuf);
+	rte_pktmbuf_free(env.mbuf);
 
 	return ret;
 }
examples/ip_pipeline/cli.c +4 -8
index 0c372675a919..c918f30e06f3 100644
@@ -3773,10 +3773,8 @@ parse_free_sym_crypto_param_data(struct rte_table_action_sym_crypto_params *p)
 
 		switch (xform[i]->type) {
 		case RTE_CRYPTO_SYM_XFORM_CIPHER:
-			if (p->cipher_auth.cipher_iv.val)
-				free(p->cipher_auth.cipher_iv.val);
-			if (p->cipher_auth.cipher_iv_update.val)
-				free(p->cipher_auth.cipher_iv_update.val);
+			free(p->cipher_auth.cipher_iv.val);
+			free(p->cipher_auth.cipher_iv_update.val);
 			break;
 		case RTE_CRYPTO_SYM_XFORM_AUTH:
 			if (p->cipher_auth.auth_iv.val)
@@ -3785,10 +3783,8 @@ parse_free_sym_crypto_param_data(struct rte_table_action_sym_crypto_params *p)
 				free(p->cipher_auth.cipher_iv_update.val);
 			break;
 		case RTE_CRYPTO_SYM_XFORM_AEAD:
-			if (p->aead.iv.val)
-				free(p->aead.iv.val);
-			if (p->aead.aad.val)
-				free(p->aead.aad.val);
+			free(p->aead.iv.val);
+			free(p->aead.aad.val);
 			break;
 		default:
 			continue;
examples/ip_pipeline/cryptodev.c +2 -4
index 9997d974563f..cd0f9c3d4eac 100644
@@ -151,10 +151,8 @@ cryptodev_create(const char *name, struct cryptodev_params *params)
 	return cryptodev;
 
 error_exit:
-	if (cryptodev->mp_create)
-		rte_mempool_free(cryptodev->mp_create);
-	if (cryptodev->mp_init)
-		rte_mempool_free(cryptodev->mp_init);
+	rte_mempool_free(cryptodev->mp_create);
+	rte_mempool_free(cryptodev->mp_init);
 
 	free(cryptodev);
 
examples/ip_pipeline/thread.c +2 -4
index b2e97327052f..82d5f87c384c 100644
@@ -92,11 +92,9 @@ thread_free(void)
 			continue;
 
 		/* MSGQs */
-		if (t->msgq_req)
-			rte_ring_free(t->msgq_req);
+		rte_ring_free(t->msgq_req);
 
-		if (t->msgq_rsp)
-			rte_ring_free(t->msgq_rsp);
+		rte_ring_free(t->msgq_rsp);
 	}
 }
 
examples/l2fwd-cat/cat.c +1 -2
index 502c6b32780e..77154c8b7e61 100644
@@ -872,8 +872,7 @@ cat_fini(void)
 #if PQOS_VERSION <= 103
 	memset(m_sockets, 0, sizeof(m_sockets));
 #else
-	if (m_sockets != NULL)
-		free(m_sockets);
+	free(m_sockets);
 #endif
 	m_sock_count = 0;
 	memset(m_config, 0, sizeof(m_config));
examples/pipeline/thread.c +2 -4
index bf11e6144b75..5fe7eae00eb6 100644
@@ -89,11 +89,9 @@ thread_free(void)
 			continue;
 
 		/* MSGQs */
-		if (t->msgq_req)
-			rte_ring_free(t->msgq_req);
+		rte_ring_free(t->msgq_req);
 
-		if (t->msgq_rsp)
-			rte_ring_free(t->msgq_rsp);
+		rte_ring_free(t->msgq_rsp);
 	}
 }
 
examples/vhost_blk/vhost_blk.c +1 -2
index feadacc62ee5..2cab1e6994fe 100644
@@ -849,8 +849,7 @@ static void
 vhost_blk_ctrlr_destroy(struct vhost_blk_ctrlr *ctrlr)
 {
 	if (ctrlr->bdev != NULL) {
-		if (ctrlr->bdev->data != NULL)
-			rte_free(ctrlr->bdev->data);
+		rte_free(ctrlr->bdev->data);
 
 		rte_free(ctrlr->bdev);
 	}
Signature · 1 line
2.34.1
#213 lore raw

PATCH v3 6/36 vhost: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 lib/vhost/iotlb.c        | 3 +--
 lib/vhost/vhost_crypto.c | 6 ++----
 lib/vhost/vhost_user.c   | 9 +++------
 3 files changed, 6 insertions(+), 12 deletions(-)
lib/vhost/iotlb.c +1 -2
index b24202a7eba3..5a5ba8b82a61 100644
@@ -324,8 +324,7 @@ vhost_user_iotlb_init(struct virtio_net *dev, int vq_index)
 
 	/* If already created, free it and recreate */
 	vq->iotlb_pool = rte_mempool_lookup(pool_name);
-	if (vq->iotlb_pool)
-		rte_mempool_free(vq->iotlb_pool);
+	rte_mempool_free(vq->iotlb_pool);
 
 	vq->iotlb_pool = rte_mempool_create(pool_name,
 			IOTLB_CACHE_SIZE, sizeof(struct vhost_iotlb_entry), 0,
lib/vhost/vhost_crypto.c +2 -4
index 926b5c0bd94a..012e0cefdeba 100644
@@ -1498,10 +1498,8 @@ rte_vhost_crypto_create(int vid, uint8_t cryptodev_id,
 	return 0;
 
 error_exit:
-	if (vcrypto->session_map)
-		rte_hash_free(vcrypto->session_map);
-	if (vcrypto->mbuf_pool)
-		rte_mempool_free(vcrypto->mbuf_pool);
+	rte_hash_free(vcrypto->session_map);
+	rte_mempool_free(vcrypto->mbuf_pool);
 
 	rte_free(vcrypto);
 
lib/vhost/vhost_user.c +3 -6
index e8297a09eb73..b50e5ab5a9c4 100644
@@ -488,8 +488,7 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
 	}
 
 	if (vq_is_packed(dev)) {
-		if (vq->shadow_used_packed)
-			rte_free(vq->shadow_used_packed);
+		rte_free(vq->shadow_used_packed);
 		vq->shadow_used_packed = rte_malloc_socket(NULL,
 				vq->size *
 				sizeof(struct vring_used_elem_packed),
@@ -502,8 +501,7 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
 		}
 
 	} else {
-		if (vq->shadow_used_split)
-			rte_free(vq->shadow_used_split);
+		rte_free(vq->shadow_used_split);
 
 		vq->shadow_used_split = rte_malloc_socket(NULL,
 				vq->size * sizeof(struct vring_used_elem),
@@ -517,8 +515,7 @@ vhost_user_set_vring_num(struct virtio_net **pdev,
 		}
 	}
 
-	if (vq->batch_copy_elems)
-		rte_free(vq->batch_copy_elems);
+	rte_free(vq->batch_copy_elems);
 	vq->batch_copy_elems = rte_malloc_socket(NULL,
 				vq->size * sizeof(struct batch_copy_elem),
 				RTE_CACHE_LINE_SIZE, vq->numa_node);
Signature · 1 line
2.34.1
#214 lore raw

PATCH v3 7/36 app: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 app/pdump/main.c                              |  9 ++--
 app/test-crypto-perf/cperf_test_latency.c     |  3 +-
 .../cperf_test_pmd_cyclecount.c               |  9 ++--
 app/test-crypto-perf/cperf_test_throughput.c  |  3 +-
 .../cperf_test_vector_parsing.c               |  6 +--
 app/test-crypto-perf/cperf_test_verify.c      |  3 +-
 app/test-pmd/cmd_flex_item.c                  |  3 +-
 app/test-pmd/cmdline.c                        |  3 +-
 app/test-pmd/testpmd.c                        |  3 +-
 app/test-regex/main.c                         | 12 ++---
 app/test/test_cksum.c                         |  3 +-
 app/test/test_compressdev.c                   |  3 +-
 app/test/test_cryptodev.h                     |  3 +-
 app/test/test_cryptodev_asym.c                |  3 +-
 app/test/test_cryptodev_blockcipher.c         | 12 ++---
 app/test/test_func_reentrancy.c               | 15 +++----
 app/test/test_hash.c                          | 15 +++----
 app/test/test_hash_perf.c                     |  7 +--
 app/test/test_link_bonding.c                  |  9 ++--
 app/test/test_link_bonding_mode4.c            |  3 +-
 app/test/test_malloc.c                        |  5 +--
 app/test/test_mbuf.c                          | 45 +++++++------------
 app/test/test_pcapng.c                        |  3 +-
 app/test/test_reorder.c                       | 15 +++----
 app/test/virtual_pmd.c                        |  3 +-
 25 files changed, 65 insertions(+), 133 deletions(-)
app/pdump/main.c +3 -6
index 46f9d25db004..04a38e891119 100644
@@ -502,14 +502,11 @@ cleanup_rings(void)
 	for (i = 0; i < num_tuples; i++) {
 		pt = &pdump_t[i];
 
-		if (pt->device_id)
-			free(pt->device_id);
+		free(pt->device_id);
 
 		/* free the rings */
-		if (pt->rx_ring)
-			rte_ring_free(pt->rx_ring);
-		if (pt->tx_ring)
-			rte_ring_free(pt->tx_ring);
+		rte_ring_free(pt->rx_ring);
+		rte_ring_free(pt->tx_ring);
 	}
 }
 
app/test-crypto-perf/cperf_test_latency.c +1 -2
index ce49feaba9f3..4c7bc72eb5fd 100644
@@ -49,8 +49,7 @@ cperf_latency_test_free(struct cperf_latency_ctx *ctx)
 			rte_cryptodev_sym_session_free(ctx->sess);
 		}
 
-		if (ctx->pool)
-			rte_mempool_free(ctx->pool);
+		rte_mempool_free(ctx->pool);
 
 		rte_free(ctx->res);
 		rte_free(ctx);
app/test-crypto-perf/cperf_test_pmd_cyclecount.c +3 -6
index 5842f29d43e2..6b4d09e623eb 100644
@@ -79,14 +79,11 @@ cperf_pmd_cyclecount_test_free(struct cperf_pmd_cyclecount_ctx *ctx)
 		}
 	}
 
-	if (ctx->pool)
-		rte_mempool_free(ctx->pool);
+	rte_mempool_free(ctx->pool);
 
-	if (ctx->ops)
-		rte_free(ctx->ops);
+	rte_free(ctx->ops);
 
-	if (ctx->ops_processed)
-		rte_free(ctx->ops_processed);
+	rte_free(ctx->ops_processed);
 
 	rte_free(ctx);
 }
app/test-crypto-perf/cperf_test_throughput.c +1 -2
index 51512af2ad81..51fad5a05505 100644
@@ -57,8 +57,7 @@ cperf_throughput_test_free(struct cperf_throughput_ctx *ctx)
 			rte_cryptodev_sym_session_free(ctx->sess);
 		}
 	}
-	if (ctx->pool)
-		rte_mempool_free(ctx->pool);
+	rte_mempool_free(ctx->pool);
 
 	rte_free(ctx);
 }
app/test-crypto-perf/cperf_test_vector_parsing.c +2 -4
index 1e9dfcfff087..87f3a90055aa 100644
@@ -551,10 +551,8 @@ parse_file(struct cperf_test_vector *vector, struct cperf_options *opts)
 err:
 	if (fp)
 		fclose(fp);
-	if (line)
-		free(line);
-	if (entry)
-		rte_free(entry);
+	free(line);
+	rte_free(entry);
 
 	return -1;
 }
app/test-crypto-perf/cperf_test_verify.c +1 -2
index 496eb0de00f0..c031330afcfe 100644
@@ -42,8 +42,7 @@ cperf_verify_test_free(struct cperf_verify_ctx *ctx)
 			rte_cryptodev_sym_session_free(ctx->sess);
 		}
 
-		if (ctx->pool)
-			rte_mempool_free(ctx->pool);
+		rte_mempool_free(ctx->pool);
 
 		rte_free(ctx);
 	}
app/test-pmd/cmd_flex_item.c +1 -2
index 908bcb3f47f8..9050825a81d7 100644
@@ -364,8 +364,7 @@ flex_item_create(portid_t port_id, uint16_t flex_id, const char *filename)
 		       flow_error.message ? flow_error.message : "");
 	}
 out:
-	if (fp)
-		free(fp);
+	free(fp);
 }
 
 #else /* RTE_HAS_JANSSON */
app/test-pmd/cmdline.c +1 -2
index e626b1c7d9ee..298a594e709b 100644
@@ -14696,8 +14696,7 @@ cmd_ddp_info_parsed(
 
 	ret = 0;
 no_print_return:
-	if (proto)
-		free(proto);
+	free(proto);
 #endif
 	if (ret == -ENOTSUP)
 		fprintf(stderr, "Function not supported in PMD\n");
app/test-pmd/testpmd.c +1 -2
index e1da961311f8..6d2e52c7905f 100644
@@ -908,8 +908,7 @@ create_extmem(uint32_t nb_mbufs, uint32_t mbuf_sz, struct extmem_param *param,
 
 	return 0;
 fail:
-	if (iovas)
-		free(iovas);
+	free(iovas);
 	if (addr)
 		munmap(addr, mem_sz);
 
app/test-regex/main.c +4 -8
index 8e665df73ce0..ab8a3e56e774 100644
@@ -210,8 +210,7 @@ read_file(char *file, char **buf)
 	printf("Error, can't open file %s\n, err = %d", file, res);
 	if (fp)
 		fclose(fp);
-	if (*buf)
-		rte_free(*buf);
+	rte_free(*buf);
 	return -res;
 }
 
@@ -299,8 +298,7 @@ init_port(uint16_t *nb_max_payload, char *rules_file, uint8_t *nb_max_matches,
 	rte_free(rules);
 	return 0;
 error:
-	if (rules)
-		rte_free(rules);
+	rte_free(rules);
 	return res;
 }
 
@@ -367,8 +365,7 @@ regex_create_segmented_mbuf(struct rte_mempool *mbuf_pool, int pkt_len,
 	return mbuf;
 
 fail:
-	if (mbuf)
-		rte_pktmbuf_free(mbuf);
+	rte_pktmbuf_free(mbuf);
 	return NULL;
 }
 
@@ -612,8 +609,7 @@ run_regex(void *args)
 		rte_free(qp->buf);
 		qp->buf = NULL;
 	}
-	if (mbuf_mp)
-		rte_mempool_free(mbuf_mp);
+	rte_mempool_free(mbuf_mp);
 	rte_free(qps);
 	return res;
 }
app/test/test_cksum.c +1 -2
index cd983d7c01ce..6c15de9a9312 100644
@@ -218,8 +218,7 @@ test_l4_cksum(struct rte_mempool *pktmbuf_pool, const char *pktdata, size_t len)
 	return 0;
 
 fail:
-	if (m)
-		rte_pktmbuf_free(m);
+	rte_pktmbuf_free(m);
 
 	return -1;
 }
app/test/test_compressdev.c +1 -2
index 57c566aa9229..fbecaf9aaad4 100644
@@ -2144,8 +2144,7 @@ test_deflate_comp_decomp(const struct interim_data_params *int_data,
 
 	if (stream != NULL)
 		rte_compressdev_stream_free(0, stream);
-	if (all_decomp_data != NULL)
-		rte_free(all_decomp_data);
+	rte_free(all_decomp_data);
 
 	/* Free compress private xforms */
 	for (i = 0; i < test_priv_data.num_priv_xforms; i++) {
app/test/test_cryptodev.h +1 -2
index 70f23a3f67d0..29a7d4db2b10 100644
@@ -230,8 +230,7 @@ create_segmented_mbuf(struct rte_mempool *mbuf_pool, int pkt_len,
 	return mbuf;
 
 fail:
-	if (mbuf)
-		rte_pktmbuf_free(mbuf);
+	rte_pktmbuf_free(mbuf);
 	return NULL;
 }
 
app/test/test_cryptodev_asym.c +1 -2
index 9d3a5589bb9c..3dadedf733e9 100644
@@ -520,8 +520,7 @@ test_cryptodev_asym_op(struct crypto_testsuite_params_asym *ts_params,
 		if (op != NULL)
 			rte_crypto_op_free(op);
 
-		if (result != NULL)
-			rte_free(result);
+		rte_free(result);
 
 	return status;
 }
app/test/test_cryptodev_blockcipher.c +4 -8
index 0c6f3ff42d4b..494459195c49 100644
@@ -807,20 +807,16 @@ test_blockcipher_one_case(const struct blockcipher_test_case *t,
 			rte_cryptodev_sym_session_clear(dev_id, sess);
 			rte_cryptodev_sym_session_free(sess);
 		}
-		if (cipher_xform)
-			rte_free(cipher_xform);
-		if (auth_xform)
-			rte_free(auth_xform);
+		rte_free(cipher_xform);
+		rte_free(auth_xform);
 	}
 
 	if (op)
 		rte_crypto_op_free(op);
 
-	if (obuf)
-		rte_pktmbuf_free(obuf);
+	rte_pktmbuf_free(obuf);
 
-	if (ibuf)
-		rte_pktmbuf_free(ibuf);
+	rte_pktmbuf_free(ibuf);
 
 	return status;
 }
app/test/test_func_reentrancy.c +5 -10
index 4ab4167eb031..da00694daafd 100644
@@ -89,15 +89,13 @@ ring_clean(unsigned int lcore_id)
 	int i;
 
 	rp = rte_ring_lookup("fr_test_once");
-	if (rp != NULL)
-		rte_ring_free(rp);
+	rte_ring_free(rp);
 
 	for (i = 0; i < MAX_ITER_MULTI; i++) {
 		snprintf(ring_name, sizeof(ring_name),
 				"fr_test_%d_%d", lcore_id, i);
 		rp = rte_ring_lookup(ring_name);
-		if (rp != NULL)
-			rte_ring_free(rp);
+		rte_ring_free(rp);
 	}
 }
 
@@ -152,15 +150,13 @@ mempool_clean(unsigned int lcore_id)
 	int i;
 
 	mp = rte_mempool_lookup("fr_test_once");
-	if (mp != NULL)
-		rte_mempool_free(mp);
+	rte_mempool_free(mp);
 
 	for (i = 0; i < MAX_ITER_MULTI; i++) {
 		snprintf(mempool_name, sizeof(mempool_name), "fr_test_%d_%d",
 			 lcore_id, i);
 		mp = rte_mempool_lookup(mempool_name);
-		if (mp != NULL)
-			rte_mempool_free(mp);
+		rte_mempool_free(mp);
 	}
 }
 
@@ -215,8 +211,7 @@ hash_clean(unsigned lcore_id)
 	int i;
 
 	handle = rte_hash_find_existing("fr_test_once");
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	for (i = 0; i < MAX_ITER_MULTI; i++) {
 		snprintf(hash_name, sizeof(hash_name), "fr_test_%d_%d",  lcore_id, i);
app/test/test_hash.c +5 -10
index b99e8de1db71..d522cb7f8cbf 100644
@@ -1654,8 +1654,7 @@ test_hash_add_delete_jhash2(void)
 	ret = 0;
 
 fail_jhash2:
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	return ret;
 }
@@ -1689,8 +1688,7 @@ test_hash_add_delete_2_jhash2(void)
 	ret = 0;
 
 fail_2_jhash2:
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	return ret;
 }
@@ -1754,8 +1752,7 @@ test_hash_add_delete_jhash_1word(void)
 	ret = 0;
 
 fail_jhash_1word:
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	return ret;
 }
@@ -1789,8 +1786,7 @@ test_hash_add_delete_jhash_2word(void)
 	ret = 0;
 
 fail_jhash_2word:
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	return ret;
 }
@@ -1824,8 +1820,7 @@ test_hash_add_delete_jhash_3word(void)
 	ret = 0;
 
 fail_jhash_3word:
-	if (handle != NULL)
-		rte_hash_free(handle);
+	rte_hash_free(handle);
 
 	return ret;
 }
app/test/test_hash_perf.c +1 -6
index 104a70b3974e..5d36c0f4543d 100644
@@ -106,12 +106,7 @@ create_table(unsigned int with_data, unsigned int table_index,
 	ut_params.key_len = hashtest_key_lens[table_index];
 	ut_params.socket_id = rte_socket_id();
 	h[table_index] = rte_hash_find_existing(name);
-	if (h[table_index] != NULL)
-		/*
-		 * If table was already created, free it to create it again,
-		 * so we force it is empty
-		 */
-		rte_hash_free(h[table_index]);
+	rte_hash_free(h[table_index]);
 	h[table_index] = rte_hash_create(&ut_params);
 	if (h[table_index] == NULL) {
 		printf("Error creating table\n");
app/test/test_link_bonding.c +3 -6
index dc6fc46b9c93..82a9b8e01a82 100644
@@ -1639,8 +1639,7 @@ test_roundrobin_rx_burst_on_single_slave(void)
 
 	/* free mbufs */
 	for (i = 0; i < MAX_PKT_BURST; i++) {
-		if (rx_pkt_burst[i] != NULL)
-			rte_pktmbuf_free(rx_pkt_burst[i]);
+		rte_pktmbuf_free(rx_pkt_burst[i]);
 	}
 
 
@@ -1722,8 +1721,7 @@ test_roundrobin_rx_burst_on_multiple_slaves(void)
 
 	/* free mbufs */
 	for (i = 0; i < MAX_PKT_BURST; i++) {
-		if (rx_pkt_burst[i] != NULL)
-			rte_pktmbuf_free(rx_pkt_burst[i]);
+		rte_pktmbuf_free(rx_pkt_burst[i]);
 	}
 
 	/* Clean up and remove slaves from bonded device */
@@ -2010,8 +2008,7 @@ test_roundrobin_verify_slave_link_status_change_behaviour(void)
 
 	/* free mbufs */
 	for (i = 0; i < MAX_PKT_BURST; i++) {
-		if (rx_pkt_burst[i] != NULL)
-			rte_pktmbuf_free(rx_pkt_burst[i]);
+		rte_pktmbuf_free(rx_pkt_burst[i]);
 	}
 
 	/* Clean up and remove slaves from bonded device */
app/test/test_link_bonding_mode4.c +1 -2
index 351129de2f9b..d9b9c323c7f8 100644
@@ -194,8 +194,7 @@ free_pkts(struct rte_mbuf **pkts, uint16_t count)
 	uint16_t i;
 
 	for (i = 0; i < count; i++) {
-		if (pkts[i] != NULL)
-			rte_pktmbuf_free(pkts[i]);
+		rte_pktmbuf_free(pkts[i]);
 	}
 }
 
app/test/test_malloc.c +2 -3
index 8db500c514e7..de40e506113a 100644
@@ -823,7 +823,7 @@ test_zero_aligned_alloc(void)
 
 err_return:
 	/*clean up */
-	if (p1) rte_free(p1);
+	rte_free(p1);
 	return -1;
 }
 
@@ -876,8 +876,7 @@ test_malloc_bad_params(void)
 
 err_return:
 	/* clean up pointer */
-	if (bad_ptr)
-		rte_free(bad_ptr);
+	rte_free(bad_ptr);
 	return -1;
 }
 
app/test/test_mbuf.c +15 -30

99 lines not on this page · raw message

app/test/test_pcapng.c +1 -2
index 34c5e1234695..320dacea3498 100644
@@ -240,8 +240,7 @@ test_validate(void)
 static void
 test_cleanup(void)
 {
-	if (mp)
-		rte_mempool_free(mp);
+	rte_mempool_free(mp);
 
 	if (pcapng)
 		rte_pcapng_close(pcapng);
app/test/test_reorder.c +5 -10
index 07dcce06d293..f0714a5c18a3 100644
@@ -218,8 +218,7 @@ test_reorder_insert(void)
 exit:
 	rte_reorder_free(b);
 	for (i = 0; i < num_bufs; i++) {
-		if (bufs[i] != NULL)
-			rte_pktmbuf_free(bufs[i]);
+		rte_pktmbuf_free(bufs[i]);
 	}
 	return ret;
 }
@@ -278,8 +277,7 @@ test_reorder_drain(void)
 		ret = -1;
 		goto exit;
 	}
-	if (robufs[0] != NULL)
-		rte_pktmbuf_free(robufs[0]);
+	rte_pktmbuf_free(robufs[0]);
 
 	/* Insert more packets
 	 * RB[] = {NULL, NULL, NULL, NULL}
@@ -313,8 +311,7 @@ test_reorder_drain(void)
 		goto exit;
 	}
 	for (i = 0; i < 3; i++) {
-		if (robufs[i] != NULL)
-			rte_pktmbuf_free(robufs[i]);
+		rte_pktmbuf_free(robufs[i]);
 	}
 
 	/*
@@ -332,10 +329,8 @@ test_reorder_drain(void)
 exit:
 	rte_reorder_free(b);
 	for (i = 0; i < num_bufs; i++) {
-		if (bufs[i] != NULL)
-			rte_pktmbuf_free(bufs[i]);
-		if (robufs[i] != NULL)
-			rte_pktmbuf_free(robufs[i]);
+		rte_pktmbuf_free(bufs[i]);
+		rte_pktmbuf_free(robufs[i]);
 	}
 	return ret;
 }
app/test/virtual_pmd.c +1 -2
index 3d2793852049..cd4611ab48df 100644
@@ -397,8 +397,7 @@ virtual_ethdev_tx_burst_fail(void *queue, struct rte_mbuf **bufs,
 		/* free packets in burst */
 		for (i = 0; i < successfully_txd; i++) {
 			/* free packets in burst */
-			if (bufs[i] != NULL)
-				rte_pktmbuf_free(bufs[i]);
+			rte_pktmbuf_free(bufs[i]);
 
 			bufs[i] = NULL;
 		}
Signature · 1 line
2.34.1
#215 lore raw

PATCH v3 8/36 baseband/*: remove unnecessary NULL checks

In reply to Stephen Hemminger

Remove redundant NULL pointer checks before free functions found by nullfree.cocci

---
 drivers/baseband/acc100/rte_acc100_pmd.c         | 3 +--
 drivers/baseband/la12xx/bbdev_la12xx.c           | 3 +--
 drivers/baseband/null/bbdev_null.c               | 3 +--
 drivers/baseband/turbo_sw/bbdev_turbo_software.c | 3 +--
 4 files changed, 4 insertions(+), 8 deletions(-)
drivers/baseband/acc100/rte_acc100_pmd.c +1 -2
index 1c6080f2f895..f86474f7e099 100644
@@ -4402,8 +4402,7 @@ poweron_cleanup(struct rte_bbdev *bbdev, struct acc100_device *d,
 	}
 	printf("Number of 5GUL engines %d\n", numEngines);
 
-	if (d->sw_rings_base != NULL)
-		rte_free(d->sw_rings_base);
+	rte_free(d->sw_rings_base);
 	usleep(ACC100_LONG_WAIT);
 }
 
drivers/baseband/la12xx/bbdev_la12xx.c +1 -2
index 4b05b5d3f2a6..4d1bd16751fe 100644
@@ -975,8 +975,7 @@ parse_bbdev_la12xx_params(struct bbdev_la12xx_params *params,
 	}
 
 exit:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
+	rte_kvargs_free(kvlist);
 	return ret;
 }
 
drivers/baseband/null/bbdev_null.c +1 -2
index 08cff582b99d..248e12987f03 100644
@@ -251,8 +251,7 @@ parse_bbdev_null_params(struct bbdev_null_params *params,
 	}
 
 exit:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
+	rte_kvargs_free(kvlist);
 	return ret;
 }
 
drivers/baseband/turbo_sw/bbdev_turbo_software.c +1 -2
index c6b1eb8679cb..af7bc416f92e 100644
@@ -1918,8 +1918,7 @@ parse_turbo_sw_params(struct turbo_sw_params *params, const char *input_args)
 	}
 
 exit:
-	if (kvlist)
-		rte_kvargs_free(kvlist);
+	rte_kvargs_free(kvlist);
 	return ret;
 }
 
Signature · 1 line
2.34.1