[PATCH v6 00/15] Add allocation annotation to more functions
Stephen Hemminger
stephen at networkplumber.org
Sat Jan 25 19:36:34 CET 2025
This patch series builds on the allocation function attributes
added in 24.11 release. These annotations will allow for compiler
to flag cases where a pointer is allocated with one function
but incorrectly passed to a different free function.
The current code base does this correctly now, but adding
attributes will catch future bugs, or errors in user programs.
For each of these patches, the free function prototype
needs to be reordered to be before the function attribute
of the allocator.
Checkpatch perl script falsely complains in a couple patches
because it doesn't really understand C syntax for attributes.
Note: this won't work for functions that are marked experimental.
The problem is that function attribute for deallocator can't handle the
case of experimental API. Even if the function in question is experimental
the use of experimental free function in the attribute attribute causes problems.
v6 - drop the pipeline patch (see note)
Stephen Hemminger (15):
fib: add allocation function attributes
rib: annotate rib allocation functions
hash: add allocation function attributes
lpm: add allocation function attributes
acl: add allocation function attributes
bitratestats: add allocation function attributes
member: add allocation function attributes
mempool: add allocation function attributes
eventdev: add allocation function attributes
ring: add allocation function attributes
reorder: add allocation function attributes
compressdev: add allocation function attributes
telemetry: add allocation function attributes
sched: add allocation function attributes
doc: add release note about allocation attributes
doc/guides/rel_notes/release_25_03.rst | 30 +++++++++++++++++++++
lib/acl/rte_acl.h | 27 +++++++++++--------
lib/bitratestats/rte_bitrate.h | 22 ++++++++-------
lib/compressdev/rte_comp.h | 29 +++++++++++---------
lib/eventdev/rte_event_ring.h | 27 ++++++++++---------
lib/fib/rte_fib.h | 26 ++++++++++--------
lib/fib/rte_fib6.h | 24 +++++++++--------
lib/fib/trie.h | 7 ++---
lib/hash/rte_fbk_hash.h | 25 +++++++++--------
lib/hash/rte_hash.h | 22 ++++++++-------
lib/lpm/rte_lpm.h | 23 ++++++++--------
lib/lpm/rte_lpm6.h | 23 ++++++++--------
lib/member/rte_member.h | 24 ++++++++---------
lib/mempool/rte_mempool.h | 37 ++++++++++++++------------
lib/reorder/rte_reorder.h | 24 +++++++++--------
lib/rib/rte_rib.h | 26 ++++++++++--------
lib/rib/rte_rib6.h | 24 +++++++++--------
lib/ring/rte_ring.h | 23 +++++++++-------
lib/sched/rte_sched.h | 24 ++++++++++-------
lib/telemetry/rte_telemetry.h | 21 ++++++++-------
20 files changed, 281 insertions(+), 207 deletions(-)
--
2.45.2
More information about the dev
mailing list