Looking at one driver noticed that rte_pktmbuf_free_bulk was not being used. That motivated me to make a coccinelle script to do a tree wide cleanup.
Then noticed that callers were having to check for NULL before calling rte_pktmbuf_free_bulk, so changed it to handle NULL array similar to free() and rte_free(). Do another tree wide pass to fix that and catch some other unnecessary null checks in code. Stephen Hemminger (20): devtools/cocci: add transform for rte_pktmbuf_free_bulk eventdev: use rte_pktmbuf_free_bulk gso: use rte_pktmbuf_free_bulk ip_frag: use rte_pktmbuf_free_bulk pipeline: use rte_pktmbuf_free_bulk port: use rte_pktmbuf_free_bulk net/af_xdp: use rte_pktmbuf_free_bulk net/cnxk: use rte_pktmbuf_free_bulk net/pfe: use rte_pktmbuf_free_bulk net/virtio: use rte_pktmbuf_free_bulk net/zxdh: use rte_pktmbuf_free_bulk app/compress-perf: use rte_pktmbuf_free_bulk mbuf: allow NULL array in rte_pktmbuf_free_bulk net/zxdh: remove unnecessary null check net/ice: remove unnecessary null check net/bnxt: remove unnecessary null check test: use rte_pktmbuf_free_bulk app/test-dma-perf: remove unnecessary null check app/test-compress-perf: remove unnecessary null check examples: use rte_pktmbuf_free_bulk .../comp_perf_test_common.c | 8 +-- app/test-compress-perf/main.c | 6 +- app/test-dma-perf/benchmark.c | 6 +- app/test/sample_packet_forward.c | 5 +- app/test/test_distributor.c | 4 +- app/test/test_dmadev.c | 6 +- app/test/test_ipfrag.c | 4 +- app/test/test_link_bonding.c | 13 ++--- app/test/test_pmd_perf.c | 3 +- app/test/test_pmd_tap.c | 3 +- app/test/test_reorder.c | 12 ++-- app/test/test_table_ports.c | 12 ++-- app/test/test_table_tables.c | 21 +++---- devtools/cocci/free_bulk.cocci | 57 +++++++++++++++++++ devtools/cocci/nullfree.cocci | 5 +- doc/guides/rel_notes/release_26_07.rst | 5 ++ drivers/net/af_xdp/rte_eth_af_xdp.c | 3 +- drivers/net/bnxt/tf_core/v3/tfo.c | 6 +- drivers/net/bnxt/tf_ulp/ulp_sc_mgr.c | 6 +- drivers/net/cnxk/cnxk_ethdev.c | 5 +- drivers/net/intel/ice/ice_dcf_sched.c | 6 +- drivers/net/pfe/pfe_ethdev.c | 4 +- drivers/net/virtio/virtio_rxtx.c | 20 +++---- drivers/net/zxdh/zxdh_np.c | 3 +- drivers/net/zxdh/zxdh_queue.c | 7 +-- drivers/net/zxdh/zxdh_rxtx.c | 3 +- examples/bbdev_app/main.c | 4 +- examples/l2fwd-crypto/main.c | 4 +- .../client_server_mp/mp_client/client.c | 7 +-- .../client_server_mp/mp_server/main.c | 5 +- examples/ntb/ntb_fwd.c | 12 ++-- examples/packet_ordering/main.c | 5 +- examples/server_node_efd/efd_node/node.c | 7 +-- examples/server_node_efd/efd_server/main.c | 5 +- examples/vhost/main.c | 3 +- lib/eventdev/rte_event_eth_tx_adapter.c | 4 +- lib/gso/gso_common.c | 5 +- lib/ip_frag/rte_ipv6_fragmentation.c | 4 +- lib/mbuf/rte_mbuf.c | 3 + lib/mbuf/rte_mbuf.h | 1 + lib/pipeline/rte_pipeline.c | 4 +- lib/port/rte_port_fd.c | 6 +- lib/port/rte_swx_port_fd.c | 8 +-- lib/port/rte_swx_port_source_sink.c | 6 +- 44 files changed, 152 insertions(+), 174 deletions(-) create mode 100644 devtools/cocci/free_bulk.cocci -- 2.53.0

