#endif
 
        alloc_size = 4 * ctx.idx;
-       ctx.target = module_alloc(max(sizeof(struct work_struct),
-                                     alloc_size));
+       ctx.target = module_alloc(alloc_size);
        if (unlikely(ctx.target == NULL))
                goto out;
 
        return;
 }
 
-static void bpf_jit_free_worker(struct work_struct *work)
-{
-       module_free(NULL, work);
-}
-
 void bpf_jit_free(struct sk_filter *fp)
 {
-       struct work_struct *work;
-
-       if (fp->bpf_func != sk_run_filter) {
-               work = (struct work_struct *)fp->bpf_func;
-
-               INIT_WORK(work, bpf_jit_free_worker);
-               schedule_work(work);
-       }
+       if (fp->bpf_func != sk_run_filter)
+               module_free(NULL, fp->bpf_func);
 }