Skip to content

remove unnecessary null checks

Stephen Hemminger dpdk-dev 3 versions – Applied

Status from this message: Applied, thanks.

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest36 patches 3 repliesApplied
  2. v283 patches 23 repliesSuperseded
  3. v182 patches 17 repliesSuperseded

Patches in v3 Applied

#Subject and filesSizeRepliesApplied
1/36lib: update documentation of XXX_free() functionslib/hash/rte_hash.h lib/mempool/rte_mempool.h lib/ring/rte_ring.h+6 -20 replies
2/36devtools/cocci: add script to fix unnecessary null checksdevtools/cocci/nullfree.cocci+33 -00 replies
3/36eal: remove unnecessary NULL checkslib/eal/common/eal_common_devargs.c lib/eal/common/eal_common_memzone.c lib/eal/common/eal_common_options.c +5 more+14 -300 replies
4/36ethdev: remove unnecessary NULL checkslib/ethdev/rte_ethdev.c+1 -20 replies
5/36examples: remove unnecessary NULL checksexamples/fips_validation/fips_dev_self_test.c examples/fips_validation/fips_validation.c examples/fips_validation/main.c +6 more+31 -620 replies
6/36vhost: remove unnecessary NULL checkslib/vhost/iotlb.c lib/vhost/vhost_crypto.c lib/vhost/vhost_user.c+6 -120 replies
7/36app: remove unnecessary NULL checksapp/pdump/main.c app/test-crypto-perf/cperf_test_latency.c app/test-crypto-perf/cperf_test_pmd_cyclecount.c +22 more+65 -1330 replies
8/36baseband/*: remove unnecessary NULL checksdrivers/baseband/acc100/rte_acc100_pmd.c drivers/baseband/la12xx/bbdev_la12xx.c drivers/baseband/null/bbdev_null.c +1 more+4 -80 replies
9/36bus/*: remove unnecessary NULL checksdrivers/bus/fslmc/fslmc_bus.c drivers/bus/fslmc/portal/dpaa2_hw_dpio.c drivers/bus/ifpga/ifpga_bus.c +3 more+11 -221 reply
10/36common/*: remove unnecessary NULL checksdrivers/common/cpt/cpt_ucode_asym.h drivers/common/dpaax/compat.h drivers/common/mlx5/mlx5_common_mr.c +2 more+9 -230 replies
11/36compress/*: remove unnecessary NULL checksdrivers/compress/mlx5/mlx5_compress.c drivers/compress/octeontx/otx_zip_pmd.c+4 -80 replies
12/36crypto: remove unnecessary NULL checksdrivers/crypto/armv8/rte_armv8_pmd_ops.c drivers/crypto/ccp/ccp_dev.c drivers/crypto/ccp/ccp_pmd_ops.c +8 more+17 -340 replies
13/36event/sw: remove unnecessary NULL checksdrivers/event/sw/sw_evdev.c+1 -20 replies
14/36net/axgbe: remove unnecessary NULL checksdrivers/net/axgbe/axgbe_rxtx.c+2 -40 replies
15/36net/bnx*: remove unnecessary NULL checksdrivers/net/bnx2x/bnx2x_rxtx.c drivers/net/bnxt/bnxt_ethdev.c+3 -60 replies
16/36net/cnxk: remove unnecessary NULL checksdrivers/net/cnxk/cnxk_ethdev.c+2 -40 replies
17/36net/cxgbe: remove unnecessary NULL checksdrivers/net/cxgbe/cxgbe_main.c+1 -20 replies
18/36net/dpaa*: remove unnecessary NULL checksdrivers/net/dpaa/dpaa_ethdev.c drivers/net/dpaa/fmlib/fm_lib.c drivers/net/dpaa2/dpaa2_ethdev.c +2 more+5 -100 replies
19/36net/ena: remove unnecessary NULL checksdrivers/net/ena/ena_ethdev.c+6 -120 replies
20/36net/hinic: remove unnecessary NULL checksdrivers/net/hinic/hinic_pmd_ethdev.c+1 -20 replies
21/36net/hns3: remove unnecessary NULL checksdrivers/net/hns3/hns3_rxtx.c+3 -60 replies
22/36net/i*: remove unnecessary NULL checksdrivers/net/i40e/i40e_ethdev.c drivers/net/i40e/i40e_rxtx.c drivers/net/iavf/iavf_rxtx.c +4 more+19 -400 replies
23/36net/mlx*: remove unnecessary NULL checksdrivers/net/mlx4/mlx4_mr.c drivers/net/mlx5/mlx5_flow.c+2 -40 replies
24/36net/mvpp2: remove unnecessary NULL checksdrivers/net/mvpp2/mrvl_qos.c+1 -20 replies
25/36net/netvsc: remove unnecessary NULL checksdrivers/net/netvsc/hn_rxtx.c+2 -40 replies
26/36net/octeontx: remove unnecessary NULL checksdrivers/net/octeontx/octeontx_ethdev.c drivers/net/octeontx/octeontx_ethdev_ops.c+2 -40 replies
27/36net/qede: remove unnecessary NULL checksdrivers/net/qede/qede_main.c drivers/net/qede/qede_rxtx.c+3 -60 replies
28/36net/txgbe: remove unnecessary NULL checksdrivers/net/txgbe/txgbe_ethdev.c+4 -80 replies
29/36net/vdev_netvsc: remove unnecessary NULL checksdrivers/net/vdev_netvsc/vdev_netvsc.c+1 -20 replies
30/36net/virtio: remove unnecessary NULL checksdrivers/net/virtio/virtio_user_ethdev.c+4 -80 replies
31/36net/other: remove unnecessary NULL checksdrivers/net/bonding/rte_eth_bond_pmd.c drivers/net/memif/rte_eth_memif.c drivers/net/null/rte_eth_null.c +4 more+15 -300 replies
32/36raw/*: remove unnecessary NULL checksdrivers/raw/cnxk_bphy/cnxk_bphy_cgx.c drivers/raw/dpaa2_qdma/dpaa2_qdma.c drivers/raw/ifpga/ifpga_rawdev.c +1 more+11 -221 reply
33/36regex/*: remove unnecessary NULL checksdrivers/regex/cn9k/cn9k_regexdev.c drivers/regex/cn9k/cn9k_regexdev_compiler.c drivers/regex/mlx5/mlx5_regex.c +1 more+5 -100 replies
34/36vdpa/*: remove unnecessary NULL checksdrivers/vdpa/ifc/ifcvf_vdpa.c drivers/vdpa/mlx5/mlx5_vdpa_mem.c drivers/vdpa/mlx5/mlx5_vdpa_virtq.c+5 -100 replies
35/36compressdev: remove unnecessary NULL checkslib/compressdev/rte_compressdev.c+1 -20 replies
36/36other: remove unnecessary NULL checkslib/graph/graph_stats.c lib/ipsec/ipsec_sad.c lib/port/rte_port_source_sink.c +2 more+12 -240 replies

Reviews trailers per patch

16 of 36 patches have a Reviewed-by or Acked-by.

PatchChenbo XiaHemant AgrawalRuifeng WangFan ZhangMin Hu (Connor)Haiyue WangLiron HimiLong LiDevendra Singh RawatDavid Hunt
1/36
2/36
3/36
4/36
5/36
6/36R-b
7/36
8/36A-b
9/36A-b
10/36
11/36
12/36A-b A-b
13/36
14/36
15/36
16/36
17/36
18/36A-b
19/36
20/36
21/36A-b
22/36A-b
23/36
24/36R-b
25/36A-b
26/36
27/36A-b
28/36
29/36
30/36
31/36A-b
32/36A-b
33/36R-b
34/36R-b
35/36A-b
36/36A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 10 reviewers.

Read the v3 thread

Cover letter [PATCH v3 00/36] 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.

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