OpenCloudOS-Kernel/tools/bpf/bpftool
Quentin Monnet f120919f99 tools: bpftool: pass an argument to silence open_obj_pinned()
Function open_obj_pinned() prints error messages when it fails to open a
link in the BPF virtual file system. However, in some occasions it is
not desirable to print an error, for example when we parse all links
under the bpffs root, and the error is due to some paths actually being
symbolic links.

Example output:

    # ls -l /sys/fs/bpf/
    lrwxrwxrwx 1 root root 0 Oct 18 19:00 ip -> /sys/fs/bpf/tc/
    drwx------ 3 root root 0 Oct 18 19:00 tc
    lrwxrwxrwx 1 root root 0 Oct 18 19:00 xdp -> /sys/fs/bpf/tc/

    # bpftool --bpffs prog show
    Error: bpf obj get (/sys/fs/bpf): Permission denied
    Error: bpf obj get (/sys/fs/bpf): Permission denied

    # strace -e bpf bpftool --bpffs prog show
    bpf(BPF_OBJ_GET, {pathname="/sys/fs/bpf/ip", bpf_fd=0}, 72) = -1 EACCES (Permission denied)
    Error: bpf obj get (/sys/fs/bpf): Permission denied
    bpf(BPF_OBJ_GET, {pathname="/sys/fs/bpf/xdp", bpf_fd=0}, 72) = -1 EACCES (Permission denied)
    Error: bpf obj get (/sys/fs/bpf): Permission denied
    ...

To fix it, pass a bool as a second argument to the function, and prevent
it from printing an error when the argument is set to true.

Signed-off-by: Quentin Monnet <quentin.monnet@netronome.com>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2018-11-09 08:20:52 +01:00
..
Documentation tools: bpftool: fix plain output and doc for --bpffs option 2018-11-09 08:20:52 +01:00
bash-completion tools: bpftool: fix completion for "bpftool map update" 2018-10-21 20:45:14 +02:00
.gitignore tools/bpftool: ignore build products 2018-07-26 02:50:26 +02:00
Makefile bpftool: Allow add linker flags via EXTRA_LDFLAGS variable 2018-10-11 10:24:53 +02:00
btf_dumper.c bpf: btf: add btf print functionality 2018-07-14 13:00:40 +02:00
cfg.c tools: bpftool: generate .dot graph from CFG information 2018-03-01 18:29:49 -08:00
cfg.h tools: bpftool: detect sub-programs from the eBPF sequence 2018-03-01 18:29:48 -08:00
cgroup.c bpftool: introduce cgroup tree command 2018-07-07 01:38:38 +02:00
common.c tools: bpftool: pass an argument to silence open_obj_pinned() 2018-11-09 08:20:52 +01:00
jit_disasm.c tools: bpftool: use 4 context mode for the NFP disasm 2018-10-18 22:16:02 +02:00
json_writer.c tools: bpftool: add JSON output for `bpftool prog dump xlated *` command 2017-10-24 01:25:08 +01:00
json_writer.h tools: bpftool: add JSON output for `bpftool prog dump xlated *` command 2017-10-24 01:25:08 +01:00
main.c tools: bpftool: print nb of cmds to stdout (not stderr) for batch mode 2018-10-21 20:45:14 +02:00
main.h tools: bpftool: pass an argument to silence open_obj_pinned() 2018-11-09 08:20:52 +01:00
map.c tools: bpftool: add map create command 2018-10-15 16:39:21 -07:00
map_perf_ring.c bpf, libbpf: simplify and cleanup perf ring buffer walk 2018-10-20 23:13:32 -07:00
net.c libbpf: Consistent prefixes for interfaces in nlattr.h. 2018-10-04 16:04:16 +02:00
netlink_dumper.c libbpf: Consistent prefixes for interfaces in nlattr.h. 2018-10-04 16:04:16 +02:00
netlink_dumper.h bpftool: Fix bpftool net output 2018-09-27 21:07:44 +02:00
perf.c tools/bpftool: fix a bug in bpftool perf 2018-06-13 02:03:17 +02:00
prog.c tools: bpftool: fix plain output and doc for --bpffs option 2018-11-09 08:20:52 +01:00
xlated_dumper.c tools: bpf: make use of reallocarray 2018-07-11 22:13:34 +02:00
xlated_dumper.h tools: bpftool: add delimiters to multi-function JITed dumps 2018-05-24 09:20:50 +02:00