On Mon, Nov 1, 2021 at 3:21 PM Yonghong Song <yhs@xxxxxx> wrote: > > > > On 11/1/21 3:00 PM, Alexei Starovoitov wrote: > > On Mon, Nov 1, 2021 at 5:35 AM Yang Yingliang <yangyingliang@xxxxxxxxxx> wrote: > >> > >> If bpf_program__attach() fails, it never returns NULL, > >> we should use libbpf_get_error() to check the return value. > >> > >> Reported-by: Hulk Robot <hulkci@xxxxxxxxxx> > >> Signed-off-by: Yang Yingliang <yangyingliang@xxxxxxxxxx> > >> Acked-by: Yonghong Song <yhs@xxxxxx> > >> --- > >> v2: > >> don't use 'int err' > >> --- > >> .../selftests/bpf/benchs/bench_bloom_filter_map.c | 10 +++++----- > >> 1 file changed, 5 insertions(+), 5 deletions(-) > >> > >> diff --git a/tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c b/tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c > >> index 6eeeed2913e6..4afaa4adb327 100644 > >> --- a/tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c > >> +++ b/tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c > >> @@ -304,7 +304,7 @@ static void bloom_lookup_setup(void) > >> populate_maps(); > >> > >> link = bpf_program__attach(ctx.skel->progs.bloom_lookup); > >> - if (!link) { > >> + if (libbpf_get_error(link)) { > > > > Please use ASSERT_OK_PTR() instead. > > See how other tests are doing it. > > I actually looked at this. ASSERT_OK_PTR() is defined in test_progs.h > and test_progs.h is ONLY included in files which eventually linked to > test_progs. That is why I didn't recommend to use ASSERT_OK_PTR(). > > Maybe it is okay to include test_progs.h in benchs/*.c. Or we may > want to refactor to a separate header file to contain these macros > which can be used for test_progs.h and other applications. hmm. Looks like bench_ringbufs.c has the same issue doing: if (!link) and bench_rename.c too. Probably would be good to fix in all bench-s. If test_progs.h cannot be included directly copy-pasting ASSERT_OK_PTR in a reduced form into bench.h is probably cleaner than open coding libbpf_get_error.