summaryrefslogtreecommitdiff
path: root/src/shared/bpf-dlopen.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-06-22 09:24:02 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-06-24 10:16:46 +0200
commit1622ef77ee4466074e7d785feabf6bc9115297c8 (patch)
tree3e6c23b55ed2e87850d8d0c9886ede87752871f8 /src/shared/bpf-dlopen.c
parentfff25ab22eec825a15c2647a84247221abd6b0c8 (diff)
downloadsystemd-1622ef77ee4466074e7d785feabf6bc9115297c8.tar.gz
various: convert to the new dlopen_or_warn() helper
Diffstat (limited to 'src/shared/bpf-dlopen.c')
-rw-r--r--src/shared/bpf-dlopen.c28
1 files changed, 4 insertions, 24 deletions
diff --git a/src/shared/bpf-dlopen.c b/src/shared/bpf-dlopen.c
index 0d222ae19e..45ab986ab2 100644
--- a/src/shared/bpf-dlopen.c
+++ b/src/shared/bpf-dlopen.c
@@ -1,8 +1,8 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
-#include "alloc-util.h"
#include "dlfcn-util.h"
#include "bpf-dlopen.h"
+#include "log.h"
#if HAVE_LIBBPF
static void *bpf_dl = NULL;
@@ -24,20 +24,8 @@ bool (*sym_bpf_probe_prog_type)(enum bpf_prog_type, __u32);
const char* (*sym_bpf_program__name)(const struct bpf_program *);
int dlopen_bpf(void) {
- _cleanup_(dlclosep) void *dl = NULL;
- int r;
-
- if (bpf_dl)
- return 0; /* Already loaded */
-
- dl = dlopen("libbpf.so.0", RTLD_LAZY);
- if (!dl)
- return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
- "libbpf is not installed: %s", dlerror());
-
- r = dlsym_many_or_warn(
- dl,
- LOG_DEBUG,
+ return dlopen_many_sym_or_warn(
+ &bpf_dl, "libbpf.so.0", LOG_DEBUG,
DLSYM_ARG(bpf_link__destroy),
DLSYM_ARG(bpf_link__fd),
DLSYM_ARG(bpf_map__fd),
@@ -52,15 +40,7 @@ int dlopen_bpf(void) {
DLSYM_ARG(bpf_probe_prog_type),
DLSYM_ARG(bpf_program__attach_cgroup),
DLSYM_ARG(bpf_program__name),
- DLSYM_ARG(libbpf_get_error),
- NULL);
- if (r < 0)
- return r;
-
- /* Note that we never release the reference here, because there's no real reason to, after all this
- * was traditionally a regular shared library dependency which lives forever too. */
- bpf_dl = TAKE_PTR(dl);
- return 1;
+ DLSYM_ARG(libbpf_get_error));
}
#else