From: David Ahern Date: Mon, 7 Feb 2022 00:32:43 +0000 (-0700) Subject: bpf_glue: Remove use of bpf_load_program from libbpf X-Git-Tag: v5.18.0~35^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=873bb9751f84252542040ad68632651144fbf1d3;p=thirdparty%2Fiproute2.git bpf_glue: Remove use of bpf_load_program from libbpf bpf_load_program is deprecated starting in v0.7. The preferred bpf_prog_load requires bpf_prog_load_opts from v0.6. This creates an ugly scenario for iproute2 to work across libbpf versions from v0.1 and up. Since bpf_program_load is only used to load the builtin vrf program, just remove the libbpf call and use the legacy code. Signed-off-by: David Ahern --- diff --git a/lib/bpf_glue.c b/lib/bpf_glue.c index 70d001840..cc3015487 100644 --- a/lib/bpf_glue.c +++ b/lib/bpf_glue.c @@ -11,18 +11,6 @@ #include #endif -int bpf_program_load(enum bpf_prog_type type, const struct bpf_insn *insns, - size_t size_insns, const char *license, char *log, - size_t size_log) -{ -#ifdef HAVE_LIBBPF - return bpf_load_program(type, insns, size_insns / sizeof(struct bpf_insn), - license, 0, log, size_log); -#else - return bpf_prog_load_dev(type, insns, size_insns, license, 0, log, size_log); -#endif -} - int bpf_program_attach(int prog_fd, int target_fd, enum bpf_attach_type type) { #ifdef HAVE_LIBBPF diff --git a/lib/bpf_legacy.c b/lib/bpf_legacy.c index 6e3891c9f..3779ae90c 100644 --- a/lib/bpf_legacy.c +++ b/lib/bpf_legacy.c @@ -1126,6 +1126,13 @@ int bpf_prog_load_dev(enum bpf_prog_type type, const struct bpf_insn *insns, return bpf(BPF_PROG_LOAD, &attr, sizeof(attr)); } +int bpf_program_load(enum bpf_prog_type type, const struct bpf_insn *insns, + size_t size_insns, const char *license, char *log, + size_t size_log) +{ + return bpf_prog_load_dev(type, insns, size_insns, license, 0, log, size_log); +} + #ifdef HAVE_ELF struct bpf_elf_prog { enum bpf_prog_type type;