[PATCH v2 1/2] bpf: add allocation annotations to functions
Konstantin Ananyev
konstantin.ananyev at huawei.com
Mon Oct 20 16:53:06 CEST 2025
> -----Original Message-----
> From: Stephen Hemminger <stephen at networkplumber.org>
> Sent: Sunday, October 19, 2025 9:40 PM
> To: dev at dpdk.org
> Cc: Stephen Hemminger <stephen at networkplumber.org>; Konstantin Ananyev
> <konstantin.ananyev at huawei.com>
> Subject: [PATCH v2 1/2] bpf: add allocation annotations to functions
>
> In commit 80da7efbb4c4 ("eal: annotate allocation functions")
> helper macros were added to provide compiler information to
> detect misuse of alloc/free combinations. This covered many
> of the functions in DPDK but missed the case of data allocated
> by BPF load functions.
>
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
> ---
> lib/bpf/rte_bpf.h | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/lib/bpf/rte_bpf.h b/lib/bpf/rte_bpf.h
> index 80ebb0210f..309d84bc51 100644
> --- a/lib/bpf/rte_bpf.h
> +++ b/lib/bpf/rte_bpf.h
> @@ -18,6 +18,7 @@
>
> #include <rte_common.h>
> #include <rte_mbuf.h>
> +#include <rte_malloc.h>
> #include <bpf_def.h>
>
> #ifdef __cplusplus
> @@ -128,7 +129,8 @@ rte_bpf_destroy(struct rte_bpf *bpf);
> * - ENOMEM - can't reserve enough memory
> */
> struct rte_bpf *
> -rte_bpf_load(const struct rte_bpf_prm *prm);
> +rte_bpf_load(const struct rte_bpf_prm *prm)
> + __rte_malloc __rte_dealloc(rte_bpf_destroy, 1);
>
> /**
> * Create a new eBPF execution context and load BPF code from given ELF
> @@ -152,7 +154,9 @@ rte_bpf_load(const struct rte_bpf_prm *prm);
> */
> struct rte_bpf *
> rte_bpf_elf_load(const struct rte_bpf_prm *prm, const char *fname,
> - const char *sname);
> + const char *sname)
> + __rte_malloc __rte_dealloc(rte_bpf_destroy, 1);
> +
> /**
> * Execute given BPF bytecode.
> *
> @@ -228,7 +232,8 @@ struct bpf_program;
> * - ENOTSUP - operation not supported
> */
> struct rte_bpf_prm *
> -rte_bpf_convert(const struct bpf_program *prog);
> +rte_bpf_convert(const struct bpf_program *prog)
> + __rte_malloc __rte_dealloc_free;
>
> #ifdef __cplusplus
> }
> --
Acked-by: Konstantin Ananyev <konstantin.ananyev at huawei.com>
> 2.51.0
More information about the dev
mailing list