croups: improve __do_bpf_program_free

parent dcbb9e99
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "compiler.h" #include "compiler.h"
#include "conf.h" #include "conf.h"
#include "config.h" #include "config.h"
#include "memory_utils.h"
#include "syscall_numbers.h" #include "syscall_numbers.h"
#ifdef HAVE_STRUCT_BPF_CGROUP_DEV_CTX #ifdef HAVE_STRUCT_BPF_CGROUP_DEV_CTX
...@@ -65,14 +66,6 @@ __hidden extern void bpf_program_free(struct bpf_program *prog); ...@@ -65,14 +66,6 @@ __hidden extern void bpf_program_free(struct bpf_program *prog);
__hidden extern void bpf_device_program_free(struct cgroup_ops *ops); __hidden extern void bpf_device_program_free(struct cgroup_ops *ops);
__hidden extern bool bpf_devices_cgroup_supported(void); __hidden extern bool bpf_devices_cgroup_supported(void);
static inline void __auto_bpf_program_free__(struct bpf_program **prog)
{
if (*prog) {
bpf_program_free(*prog);
*prog = NULL;
}
}
__hidden extern int bpf_list_add_device(struct lxc_conf *conf, struct device_item *device); __hidden extern int bpf_list_add_device(struct lxc_conf *conf, struct device_item *device);
#else /* !HAVE_STRUCT_BPF_CGROUP_DEV_CTX */ #else /* !HAVE_STRUCT_BPF_CGROUP_DEV_CTX */
...@@ -129,10 +122,6 @@ static inline bool bpf_devices_cgroup_supported(void) ...@@ -129,10 +122,6 @@ static inline bool bpf_devices_cgroup_supported(void)
return false; return false;
} }
static inline void __auto_bpf_program_free__(struct bpf_program **prog)
{
}
static inline int bpf_list_add_device(struct lxc_conf *conf, static inline int bpf_list_add_device(struct lxc_conf *conf,
struct device_item *device) struct device_item *device)
{ {
...@@ -141,7 +130,7 @@ static inline int bpf_list_add_device(struct lxc_conf *conf, ...@@ -141,7 +130,7 @@ static inline int bpf_list_add_device(struct lxc_conf *conf,
} }
#endif /* !HAVE_STRUCT_BPF_CGROUP_DEV_CTX */ #endif /* !HAVE_STRUCT_BPF_CGROUP_DEV_CTX */
#define __do_bpf_program_free \ define_cleanup_function(struct bpf_program *, bpf_program_free);
__attribute__((__cleanup__(__auto_bpf_program_free__))) #define __do_bpf_program_free call_cleaner(bpf_program_free)
#endif /* __LXC_CGROUP2_DEVICES_H */ #endif /* __LXC_CGROUP2_DEVICES_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment