diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-06-22 09:24:02 +0200 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-06-24 10:16:46 +0200 |
commit | 1622ef77ee4466074e7d785feabf6bc9115297c8 (patch) | |
tree | 3e6c23b55ed2e87850d8d0c9886ede87752871f8 /src/shared/bpf-dlopen.c | |
parent | fff25ab22eec825a15c2647a84247221abd6b0c8 (diff) | |
download | systemd-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.c | 28 |
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 |