return prog->aux->attach_btf;
 }
 
-static bool is_int_ptr(struct btf *btf, const struct btf_type *t)
+static bool is_void_or_int_ptr(struct btf *btf, const struct btf_type *t)
 {
        /* skip modifiers */
        t = btf_type_skip_modifiers(btf, t->type, NULL);
-
-       return btf_type_is_int(t);
+       return btf_type_is_void(t) || btf_type_is_int(t);
 }
 
 static u32 get_ctx_arg_idx(struct btf *btf, const struct btf_type *func_proto,
                }
        }
 
-       if (t->type == 0)
-               /* This is a pointer to void.
-                * It is the same as scalar from the verifier safety pov.
-                * No further pointer walking is allowed.
-                */
-               return true;
-
-       if (is_int_ptr(btf, t))
+       /*
+        * If it's a pointer to void, it's the same as scalar from the verifier
+        * safety POV. Either way, no futher pointer walking is allowed.
+        */
+       if (is_void_or_int_ptr(btf, t))
                return true;
 
        /* this is a pointer to another type */