2020-09-03 18:52:06

by Andrii Nakryiko

[permalink] [raw]
Subject: Re: [PATCH] selftests/bpf: Fix check in global_data_init.

On Thu, Sep 3, 2020 at 11:02 AM Hao Luo <[email protected]> wrote:
>
> The returned value of bpf_object__open_file() should be checked with
> IS_ERR() rather than NULL. This fix makes test_progs not crash when
> test_global_data.o is not present.
>
> Signed-off-by: Hao Luo <[email protected]>
> ---
> tools/testing/selftests/bpf/prog_tests/global_data_init.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/global_data_init.c b/tools/testing/selftests/bpf/prog_tests/global_data_init.c
> index 3bdaa5a40744..1ece86d5c519 100644
> --- a/tools/testing/selftests/bpf/prog_tests/global_data_init.c
> +++ b/tools/testing/selftests/bpf/prog_tests/global_data_init.c
> @@ -12,7 +12,7 @@ void test_global_data_init(void)
> size_t sz;
>
> obj = bpf_object__open_file(file, NULL);
> - if (CHECK_FAIL(!obj))
> + if (CHECK_FAIL(IS_ERR(obj)))

Can you please use libbpf_get_error(obj) instead to set a good example
or not relying on kernel internal macros?

> return;
>
> map = bpf_object__find_map_by_name(obj, "test_glo.rodata");
> --
> 2.28.0.402.g5ffc5be6b7-goog
>


2020-09-03 19:33:03

by Hao Luo

[permalink] [raw]
Subject: Re: [PATCH] selftests/bpf: Fix check in global_data_init.

No problem! Let me update and resend.

On Thu, Sep 3, 2020 at 11:50 AM Andrii Nakryiko
<[email protected]> wrote:
>
> On Thu, Sep 3, 2020 at 11:02 AM Hao Luo <[email protected]> wrote:
> >
> > The returned value of bpf_object__open_file() should be checked with
> > IS_ERR() rather than NULL. This fix makes test_progs not crash when
> > test_global_data.o is not present.
> >
> > Signed-off-by: Hao Luo <[email protected]>
> > ---
> > tools/testing/selftests/bpf/prog_tests/global_data_init.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/tools/testing/selftests/bpf/prog_tests/global_data_init.c b/tools/testing/selftests/bpf/prog_tests/global_data_init.c
> > index 3bdaa5a40744..1ece86d5c519 100644
> > --- a/tools/testing/selftests/bpf/prog_tests/global_data_init.c
> > +++ b/tools/testing/selftests/bpf/prog_tests/global_data_init.c
> > @@ -12,7 +12,7 @@ void test_global_data_init(void)
> > size_t sz;
> >
> > obj = bpf_object__open_file(file, NULL);
> > - if (CHECK_FAIL(!obj))
> > + if (CHECK_FAIL(IS_ERR(obj)))
>
> Can you please use libbpf_get_error(obj) instead to set a good example
> or not relying on kernel internal macros?
>
> > return;
> >
> > map = bpf_object__find_map_by_name(obj, "test_glo.rodata");
> > --
> > 2.28.0.402.g5ffc5be6b7-goog
> >