Re: [PATCH bpf-next] selftests/bpf: Add missing bpf_iter_vma_offset__destroy call

Jiri Olsa
2022-10-04T06:38:31Z

On Mon, Oct 03, 2022 at 05:12:44PM -0700, Martin KaFai Lau wrote:
> On 10/2/22 8:11 AM, Jiri Olsa wrote:
> > Adding missing bpf_iter_vma_offset__destroy call to
> > test_task_vma_offset_common function and related goto jumps.
> >
> > Fixes: b3e1331eb925 ("selftests/bpf: Test parameterized task BPF iterators.")
> > Cc: Kui-Feng Lee <kuifeng@fb.com>
> > Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> > ---
> > tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 8 +++++---
> > 1 file changed, 5 insertions(+), 3 deletions(-)
> >
> > diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_iter.c b/tools/testing/selftests/bpf/prog_tests/bpf_iter.c
> > index 3369c5ec3a17..462fe92e0736 100644
> > --- a/tools/testing/selftests/bpf/prog_tests/bpf_iter.c
> > +++ b/tools/testing/selftests/bpf/prog_tests/bpf_iter.c
> > @@ -1515,11 +1515,11 @@ static void test_task_vma_offset_common(struct bpf_iter_attach_opts *opts, bool
> > link = bpf_program__attach_iter(skel->progs.get_vma_offset, opts);
>
> Thanks for the fix.
>
> A nit. Instead of adding a new goto label. How about doing
>
> skel->links.get_vma_offset = bpf_program_attach_iter(...)
>
> and bpf_iter_vma_offset__destroy(skel) will take care of the link destroy.
> The earlier test_task_vma_common() is doing that also.

right, I forgot destroy would do that.. it'll be simpler change

thanks,
jirka

>
> Kui-Feng, please also take a look.
>
> > if (!ASSERT_OK_PTR(link, "attach_iter"))
> > - return;
> > + goto exit_skel;
> > iter_fd = bpf_iter_create(bpf_link__fd(link));
> > if (!ASSERT_GT(iter_fd, 0, "create_iter"))
> > - goto exit;
> > + goto exit_link;
> > while ((len = read(iter_fd, buf, sizeof(buf))) > 0)
> > ;
> > @@ -1534,8 +1534,10 @@ static void test_task_vma_offset_common(struct bpf_iter_attach_opts *opts, bool
> > close(iter_fd);
> > -exit:
> > +exit_link:
> > bpf_link__destroy(link);
> > +exit_skel:
> > + bpf_iter_vma_offset__destroy(skel);
> > }
> > static void test_task_vma_offset(void)
>