remove unnecessary null checks
Subsystems (7)
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
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
@@ -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
PATCH 2/82 eal: remove unnecessary NULL checks
In reply to Stephen HemmingerFunctions 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH 3/82 eal/windows: remove unnecessary NULL checks before free
In reply to Stephen HemmingerCalling 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
@@ -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
@@ -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
PATCH 4/82 examples/fips_validation: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
PATCH 5/82 examples/ip_pipeline: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
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 checksRemove redundant NULL pointer checks before free functions found by
nullfree.cocci
Quoted 7 lines
Signed-off-by Stephen Hemminger <[email protected]>--- 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
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 checksRemove redundant NULL pointer checks before free functions found by
nullfree.cocciQuoted 7 lines
Signed-off-by Stephen Hemminger <[email protected]>--- 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()andrte_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 therte_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.
PATCH 6/82 examples/pipeline/thread: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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 checksRemove redundant NULL pointer checks before free functions found by
nullfree.cocciSigned-off-by Stephen Hemminger <[email protected]>--- examples/pipeline/thread.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)examples/pipeline/thread.c +2
-5@@ -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
PATCH 7/82 examples/l2fwd-cat: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 8/82 lib/vhost: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
PATCH 9/82 examples/vhost_blk: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 10/82 app/pdump: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 11/82 app/test-crypto-perf: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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 checksRemove redundant NULL pointer checks before free functions found by
nullfree.cocciSigned-off-by Stephen Hemminger <[email protected]>---
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>
PATCH 12/82 app/test-pmd: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
PATCH 13/82 app/test-regex: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 14/82 app/test: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH 15/82 baseband/acc100 remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 16/82 baseband/la12xx remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
RE: [PATCH 16/82] baseband/la12xx remove unnecessary NULL checks
PATCH 17/82 baseband/null remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 18/82 baseband/turbo_sw remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 19/82 bus/fslmc: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
RE: [PATCH 19/82] bus/fslmc: remove unnecessary NULL checks
PATCH 20/82 bus/ifpga: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 21/82 bus/pci: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
PATCH 22/82 common/cpt: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 23/82 common/dpaax: simplify kernel compat macros
In reply to Stephen HemmingerThe 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
@@ -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
RE: [PATCH 23/82] common/dpaax: simplify kernel compat macros
PATCH 24/82 common/mlx5: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
PATCH 25/82 common/qat: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 26/82 compress/mlx5: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 27/82 compress/octeontx: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 28/82 crypto/armv8: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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.cocciSigned-off-by Stephen Hemminger <[email protected]>--- drivers/crypto/armv8/rte_armv8_pmd_ops.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
Thanks.
PATCH 29/82 crypto/ccp: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
PATCH 30/82 crypto/cnxk: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 31/82 crypto/ipsec_mb: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 32/82 crypto/mvsam: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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
@@ -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
PATCH 33/82 crypto/null: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 34/82 crypto/octeontx: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 35/82 crypto/openssl: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 36/82 crypto/scheduler: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 37/82 crypto/virtio: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 38/82 event/sw: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 39/82 net/axgbe: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 40/82 net/bnx2x: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 41/82 net/bnxt: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 42/82 net/bonding: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 43/82 net/cnxk: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 44/82 net/cxgbe: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 45/82 net/dpaa: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
RE: [PATCH 45/82] net/dpaa: remove unnecessary NULL checks
PATCH 46/82 net/dpaa2: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
PATCH 47/82 net/ena: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 48/82 net/hinic: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 49/82 net/hns3: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 50/82 net/i40e: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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 (ðertype_rule->ethertype_list))) { TAILQ_REMOVE(ðertype_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
@@ -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
PATCH 51/82 net/iavf: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 52/82 net/ice: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 53/82 net/igc: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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 checksRemove redundant NULL pointer checks before free functions found by
nullfree.cocciSigned-off-by Stephen Hemminger <[email protected]>--- drivers/net/igc/igc_flow.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)drivers/net/igc/igc_flow.c +0
-0
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
PATCH 54/82 net/ixgbe: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
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 checksRemove redundant NULL pointer checks before free functions found by
nullfree.cocciSigned-off-by Stephen Hemminger <[email protected]>--- 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
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
PATCH 55/82 net/memif: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 56/82 net/mlx4: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 57/82 net/mlx5: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 58/82 net/mvpp2: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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;
Signature · 1 line
2.30.2
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
PATCH 59/82 net/netvsc: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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.cocciSigned-off-by Stephen Hemminger <[email protected]>
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..3e3488f1b87a100644drivers/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
PATCH 60/82 net/null: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 61/82 net/octeontx: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
PATCH 62/82 net/qede: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
PATCH 63/82 net/softnic: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
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 checksRemove redundant NULL pointer checks before free functions found by
nullfree.cocci
Quoted 7 lines
Signed-off-by Stephen Hemminger <[email protected]>--- 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
PATCH 64/82 net/tap: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 65/82 net/txgbe: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 66/82 net/vdev_netvsc: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 67/82 net/virtio: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 68/82 raw/cnxk_bphy: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 69/82 raw/dpaa2_qdma: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 70/82 raw/ifpga: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 71/82 raw/skeleton: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
RE: [PATCH 71/82] raw/skeleton: remove unnecessary NULL checks
PATCH 72/82 regex/cn9k: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
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
@@ -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
@@ -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
PATCH 73/82 regex/mlx5: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
PATCH 74/82 vdpa/ifc: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 75/82 vdpa/mlx5: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
PATCH 76/82 compressdev: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 77/82 ethdev: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 78/82 graph: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 79/82 ipsec: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 80/82 port: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 81/82 power: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH 82/82 reorder: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
v2 cover remove unnecessary null checks
In reply to Stephen HemmingerWhile 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
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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.Signed-off-by Stephen Hemminger <[email protected]>---
/**
* 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.
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
Signed-off-by Stephen Hemminger <[email protected]>---
/**
* 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...
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.Signed-off-by Stephen Hemminger <[email protected]>---
/**
* 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_freeto 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.
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.Signed-off-by Stephen Hemminger <[email protected]>---
/**
* 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_freeto 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?
PATCH v2 2/83 devtools/cocci: add script to fix unnecessary null checks
In reply to Stephen HemmingerThis 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
@@ -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
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);Signed-off-by Stephen Hemminger <[email protected]>
Good to have, thank you.
PATCH v2 3/83 eal: remove unnecessary NULL checks
In reply to Stephen HemmingerFunctions 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH v2 4/83 eal/windows: remove unnecessary NULL checks before free
In reply to Stephen HemmingerCalling 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
@@ -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
@@ -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
PATCH v2 5/83 examples/fips_validation: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
PATCH v2 6/83 examples/ip_pipeline: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
PATCH v2 7/83 examples/pipeline/thread: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 8/83 examples/l2fwd-cat: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 9/83 lib/vhost: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
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.cocciSigned-off-by Stephen Hemminger <[email protected]>--- 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@@ -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@@ -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@@ -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
PATCH v2 10/83 examples/vhost_blk: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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 checksRemove redundant NULL pointer checks before free functions found by
nullfree.cocciSigned-off-by Stephen Hemminger <[email protected]>--- examples/vhost_blk/vhost_blk.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)examples/vhost_blk/vhost_blk.c +1
-3@@ -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
PATCH v2 11/83 app/pdump: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 12/83 app/test-crypto-perf: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH v2 13/83 app/test-pmd: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
PATCH v2 14/83 app/test-regex: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 15/83 app/test: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH v2 16/83 baseband/acc100 remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 17/83 baseband/la12xx remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 18/83 baseband/null remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 19/83 baseband/turbo_sw remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 20/83 bus/fslmc: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
PATCH v2 21/83 bus/ifpga: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 22/83 bus/pci: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
PATCH v2 23/83 common/cpt: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 24/83 common/dpaax: simplify kernel compat macros
In reply to Stephen HemmingerThe 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
@@ -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
PATCH v2 25/83 common/mlx5: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
PATCH v2 26/83 common/qat: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 27/83 compress/mlx5: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 28/83 compress/octeontx: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 29/83 crypto/armv8: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 30/83 crypto/ccp: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
PATCH v2 31/83 crypto/cnxk: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 32/83 crypto/ipsec_mb: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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 checksRemove redundant NULL pointer checks before free functions found by
nullfree.cocciSigned-off-by Stephen Hemminger <[email protected]>--- 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@@ -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
-3if (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
PATCH v2 33/83 crypto/mvsam: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 34/83 crypto/null: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 35/83 crypto/octeontx: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 36/83 crypto/openssl: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 37/83 crypto/scheduler: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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.cocciSigned-off-by Stephen Hemminger <[email protected]>---
PATCH v2 38/83 crypto/virtio: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 39/83 event/sw: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 40/83 net/axgbe: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 41/83 net/bnx2x: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 42/83 net/bnxt: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 43/83 net/bonding: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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.cocciSigned-off-by Stephen Hemminger <[email protected]>--- 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@@ -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 ; }
PATCH v2 44/83 net/cnxk: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 45/83 net/cxgbe: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 46/83 net/dpaa: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
PATCH v2 47/83 net/dpaa2: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
PATCH v2 48/83 net/ena: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 49/83 net/hinic: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 50/83 net/hns3: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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.cocciSigned-off-by Stephen Hemminger <[email protected]>--- drivers/net/hns3/hns3_rxtx.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-)drivers/net/hns3/hns3_rxtx.c +3
-6@@ -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); } }
PATCH v2 51/83 net/i40e: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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 (ðertype_rule->ethertype_list))) { TAILQ_REMOVE(ðertype_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
@@ -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
PATCH v2 52/83 net/iavf: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 53/83 net/ice: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 54/83 net/igc: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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.cocciSigned-off-by Stephen Hemminger <[email protected]>--- drivers/net/igc/igc_flow.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
Quoted 1 line
2.30.2
PATCH v2 55/83 net/ixgbe: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
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.cocciSigned-off-by Stephen Hemminger <[email protected]>--- 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
PATCH v2 56/83 net/memif: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 57/83 net/mlx4: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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.cocciSigned-off-by Stephen Hemminger <[email protected]>
PATCH v2 58/83 net/mlx5: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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.cocciSigned-off-by Stephen Hemminger <[email protected]>
PATCH v2 59/83 net/mvpp2: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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;
Signature · 1 line
2.30.2
PATCH v2 60/83 net/netvsc: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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.cocciSigned-off-by Stephen Hemminger <[email protected]>
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..3e3488f1b87a100644drivers/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
PATCH v2 61/83 net/null: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 62/83 net/octeontx: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
PATCH v2 63/83 net/qede: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
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 checksExternal Email
----------------------------------------------------------------------
Remove redundant NULL pointer checks before free functions found bynullfree.cocciSigned-off-by Stephen Hemminger <[email protected]>--- 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@@ -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..1c0a6ba5f1bf100644drivers/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
PATCH v2 64/83 net/softnic: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
PATCH v2 65/83 net/tap: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 66/83 net/txgbe: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 67/83 net/vdev_netvsc: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 68/83 net/virtio: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 69/83 raw/cnxk_bphy: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 70/83 raw/dpaa2_qdma: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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 checksRemove redundant NULL pointer checks before free functions found by
nullfree.cocciSigned-off-by Stephen Hemminger <[email protected]>--- drivers/raw/dpaa2_qdma/dpaa2_qdma.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-)drivers/raw/dpaa2_qdma/dpaa2_qdma.c +3
-6@@ -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
-5return -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
PATCH v2 71/83 raw/ifpga: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 72/83 raw/skeleton: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 73/83 regex/cn9k: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
PATCH v2 74/83 regex/mlx5: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
PATCH v2 75/83 vdpa/ifc: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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 checksRemove redundant NULL pointer checks before free functions found by
nullfree.cocciSigned-off-by Stephen Hemminger <[email protected]>--- drivers/vdpa/ifc/ifcvf_vdpa.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-)drivers/vdpa/ifc/ifcvf_vdpa.c +3
-7@@ -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
PATCH v2 76/83 vdpa/mlx5: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
PATCH v2 77/83 compressdev: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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 checksRemove redundant NULL pointer checks before free functions found by
nullfree.cocciSigned-off-by Stephen Hemminger <[email protected]>--- lib/compressdev/rte_compressdev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)lib/compressdev/rte_compressdev.c +1
-3@@ -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
PATCH v2 78/83 ethdev: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 79/83 graph: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 80/83 ipsec: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 81/83 port: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v2 82/83 power: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
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.cocciSigned-off-by Stephen Hemminger <[email protected]>--- lib/power/rte_power_empty_poll.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)lib/power/rte_power_empty_poll.c +0
-0
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
PATCH v2 83/83 reorder: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
24/01/2022 18:45, Stephen Hemminger:
Quoted 3 lines
Stephen Hemminger (83):
lib: update documentation ofXXX_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.
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 ofXXX_free()functions devtools/cocci: add script to fix unnecessary null checksI 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
v3 cover remove unnecessary null checks
In reply to Stephen HemmingerWhile 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
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
@@ -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
@@ -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
@@ -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
PATCH v3 2/36 devtools/cocci: add script to fix unnecessary null checks
In reply to Stephen HemmingerThis 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
@@ -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
PATCH v3 3/36 eal: remove unnecessary NULL checks
In reply to Stephen HemmingerFunctions 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH v3 4/36 ethdev: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
PATCH v3 5/36 examples: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH v3 6/36 vhost: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
PATCH v3 7/36 app: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH v3 8/36 baseband/*: remove unnecessary NULL checks
In reply to Stephen HemmingerRemove 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
@@ -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
@@ -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
@@ -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
@@ -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