Re: [PATCH] tools/bpf: Return the appropriate error value

From: Andrii Nakryiko
Date: Tue Dec 01 2020 - 20:39:18 EST


On Mon, Nov 30, 2020 at 7:06 PM 彭浩(Richard) <richard.peng@xxxxxxxx> wrote:
>
> Compile times error:
> "Error: failed to load BTF from /mnt/linux/vmlinux: No such file or directory".
> This file "/mnt/linux/vmlinux" actually exists, but only because CONFIG_DEBUG_INFO_BTF
> is not configured with this error.
>
> Signed-off-by: Peng Hao <richard.peng@xxxxxxxx>
> ---
> tools/lib/bpf/btf.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c
> index 231b07203e3d..228f508fbd04 100644
> --- a/tools/lib/bpf/btf.c
> +++ b/tools/lib/bpf/btf.c
> @@ -865,7 +865,7 @@ struct btf *btf__parse_elf(const char *path, struct btf_ext **btf_ext)
> err = 0;
>
> if (!btf_data) {
> - err = -ENOENT;
> + err = -EPROTO;

ENOENT as related to "no .BTF section found"... EPROTO would make
sense as well, but I don't think we need to really change anything.
"Protocol error" isn't very meaningful either...


> goto done;
> }
> btf = btf__new(btf_data->d_buf, btf_data->d_size);
> --
> 2.18.4