static __init int prepare_bpf_tests(void)
 {
-       int i;
-
        if (test_id >= 0) {
                /*
                 * if a test_id was specified, use test_range to
                }
        }
 
-       for (i = 0; i < ARRAY_SIZE(tests); i++) {
-               if (tests[i].fill_helper &&
-                   tests[i].fill_helper(&tests[i]) < 0)
-                       return -ENOMEM;
-       }
-
        return 0;
 }
 
 static __init void destroy_bpf_tests(void)
 {
-       int i;
-
-       for (i = 0; i < ARRAY_SIZE(tests); i++) {
-               if (tests[i].fill_helper)
-                       kfree(tests[i].u.ptr.insns);
-       }
 }
 
 static bool exclude_test(int test_id)
 
                pr_info("#%d %s ", i, tests[i].descr);
 
+               if (tests[i].fill_helper &&
+                   tests[i].fill_helper(&tests[i]) < 0) {
+                       pr_cont("FAIL to prog_fill\n");
+                       continue;
+               }
+
                fp = generate_filter(i, &err);
+
+               if (tests[i].fill_helper) {
+                       kfree(tests[i].u.ptr.insns);
+                       tests[i].u.ptr.insns = NULL;
+               }
+
                if (fp == NULL) {
                        if (err == 0) {
                                pass_cnt++;