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 <daniel@iogearbox.net>
This commit is contained in:
Daniel Borkmann 2017-05-13 02:32:35 +02:00 committed by Stephen Hemminger
parent 077bb1803c
commit 218560185d
1 changed files with 11 additions and 1 deletions

View File

@ -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;