> Subject: [PATCH v9 00/17] Use malloc function attribute to uncover bugs > > Recent versions of GCC have some additional function attributes that can help > with DPDK performance and stability. > > The alloc_align attribute tells the compiler what the alignment of the > allocation > will be, and the optimizer can use this to produce better code (especially > memcpy and structure copies). > > The malloc attribute tells compiler that object is not overlapping and > potentially aliasing. It also as an additional variant in GCC 11 or later that > allows for detecting all sorts of common errors like calling free() on memory > allocated with rte_malloc(). > > In order to use the malloc attribute the free function prototype needs to be > moved before the allocator/create function prototype so that the malloc > attribute can refer to it. > > This uncovered at least 16 pre-existing bugs in DPDK, these should go to > stable. This patch set is structured with: > - fix any new warnings that were discovered > - add macros for enable the macros > - enable the attributes > > The same attributes could be added to lots more functions in DPDK, but this > patch set focuses on the key ones, and where problems exist in current code > base. > > v9 - correct the event/cnxk patch > > Stephen Hemminger (17): > memzone: fix use after free in tracing > cryptodev/bcmfs: fix mis-matched free > dma/ixd: fix incorrect free function in cleanup > event/cnxk: fix free of non-heap in cleanup code > examples/vhost: fix free function mismatch > net/cnxk: fix use-after-free > bpf: fix free mismatch if convert fails > net/e1000: fix use-after-free > net/sfc: fix use-after-free warning messages > net/cpfl: fix free of nonheap object > net/nfp: fix duplicate call to rte_free > raw/ifpga/base: fix use after free > common/qat: fix use after free > drivers/ifpga: fix free function mismatch > baseband/la12xx: prevent use after free > common/idpf: fix use after free due > eal: add function attributes for allocation functions > > doc/guides/rel_notes/release_24_11.rst | 8 +++ > drivers/baseband/la12xx/bbdev_la12xx.c | 1 + > drivers/common/idpf/base/idpf_osdep.h | 10 +++- > drivers/common/idpf/idpf_common_device.c | 3 +- > drivers/common/qat/qat_device.c | 6 +-- > drivers/crypto/bcmfs/bcmfs_device.c | 4 +- > drivers/dma/idxd/idxd_pci.c | 2 +- > drivers/event/cnxk/cnxk_eventdev.c | 2 +- > drivers/net/cnxk/cnxk_ethdev_sec.c | 2 +- > drivers/net/cpfl/cpfl_flow_parser.c | 1 - > drivers/net/e1000/igb_ethdev.c | 4 +- > drivers/net/nfp/flower/nfp_flower_flow.c | 1 - > drivers/net/sfc/sfc_flow_rss.c | 4 +- > drivers/net/sfc/sfc_mae.c | 23 ++++----- > drivers/raw/ifpga/base/opae_intel_max10.c | 11 ++++- > drivers/raw/ifpga/ifpga_rawdev.c | 8 +-- > examples/vhost_blk/vhost_blk.c | 2 +- > lib/bpf/bpf_convert.c | 2 +- > lib/eal/common/eal_common_memzone.c | 3 +- > lib/eal/include/rte_common.h | 34 +++++++++++++ > lib/eal/include/rte_malloc.h | 59 ++++++++++++++--------- > 21 files changed, 124 insertions(+), 66 deletions(-) > > -- > 2.45.2
Acked-by: Wathsala Vithanage <wathsala.vithan...@arm.com>