From: Daniel Borkmann Date: Sat, 13 May 2017 00:32:35 +0000 (+0200) Subject: bpf: dump error to the user when retrieving pinned prog fails X-Git-Tag: v4.12.0~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=218560185d2d0aa3b3ac6ab166a7e6bfee39f5e5;p=thirdparty%2Fiproute2.git bpf: dump error to the user when retrieving pinned prog fails I noticed we currently don't dump an error message when a pinned program couldn't be retrieved, thus add a hint to the user. Signed-off-by: Daniel Borkmann --- diff --git a/lib/bpf.c b/lib/bpf.c index 04ee1ab9b..ae4d97dc4 100644 --- a/lib/bpf.c +++ b/lib/bpf.c @@ -648,6 +648,16 @@ static int bpf_obj_get(const char *pathname, enum bpf_prog_type type) return bpf(BPF_OBJ_GET, &attr, sizeof(attr)); } +static int bpf_obj_pinned(const char *pathname, enum bpf_prog_type type) +{ + int prog_fd = bpf_obj_get(pathname, type); + + if (prog_fd < 0) + fprintf(stderr, "Couldn\'t retrieve pinned program \'%s\': %s\n", + pathname, strerror(errno)); + return prog_fd; +} + enum bpf_mode { CBPF_BYTECODE, CBPF_FILE, @@ -750,7 +760,7 @@ static int bpf_parse(enum bpf_prog_type *type, enum bpf_mode *mode, else if (*mode == EBPF_OBJECT) ret = bpf_obj_open(file, *type, section, verbose); else if (*mode == EBPF_PINNED) - ret = bpf_obj_get(file, *type); + ret = bpf_obj_pinned(file, *type); else return -1;