static void test_task_vma_offset_common(struct bpf_iter_attach_opts *opts, bool one_proc)
 {
        struct bpf_iter_vma_offset *skel;
-       struct bpf_link *link;
        char buf[16] = {};
        int iter_fd, len;
        int pgsz, shift;
                ;
        skel->bss->page_shift = shift;
 
-       link = bpf_program__attach_iter(skel->progs.get_vma_offset, opts);
-       if (!ASSERT_OK_PTR(link, "attach_iter"))
-               return;
+       skel->links.get_vma_offset = bpf_program__attach_iter(skel->progs.get_vma_offset, opts);
+       if (!ASSERT_OK_PTR(skel->links.get_vma_offset, "attach_iter"))
+               goto exit;
 
-       iter_fd = bpf_iter_create(bpf_link__fd(link));
+       iter_fd = bpf_iter_create(bpf_link__fd(skel->links.get_vma_offset));
        if (!ASSERT_GT(iter_fd, 0, "create_iter"))
                goto exit;
 
        close(iter_fd);
 
 exit:
-       bpf_link__destroy(link);
+       bpf_iter_vma_offset__destroy(skel);
 }
 
 static void test_task_vma_offset(void)