enum bpf_prog_type      type;           /* Type of BPF program */
        struct bpf_prog_aux     *aux;           /* Auxiliary fields */
        struct sock_fprog_kern  *orig_prog;     /* Original BPF program */
-       unsigned int            (*bpf_func)(const struct sk_buff *skb,
-                                           const struct bpf_insn *filter);
+       unsigned int            (*bpf_func)(const void *ctx,
+                                           const struct bpf_insn *insn);
        /* Instructions for interpreter */
        union {
                struct sock_filter      insns[0];
        u32 ret;
 
        rcu_read_lock();
-       ret = BPF_PROG_RUN(prog, (void *)xdp);
+       ret = BPF_PROG_RUN(prog, xdp);
        rcu_read_unlock();
 
        return ret;
 
        if (unlikely(__this_cpu_inc_return(bpf_prog_active) != 1))
                goto out;
        rcu_read_lock();
-       ret = BPF_PROG_RUN(event->prog, (void *)&ctx);
+       ret = BPF_PROG_RUN(event->prog, &ctx);
        rcu_read_unlock();
 out:
        __this_cpu_dec(bpf_prog_active);
 
         * value always takes priority (ignoring the DATA).
         */
        for (; f; f = f->prev) {
-               u32 cur_ret = BPF_PROG_RUN(f->prog, (void *)sd);
+               u32 cur_ret = BPF_PROG_RUN(f->prog, sd);
 
                if ((cur_ret & SECCOMP_RET_ACTION) < (ret & SECCOMP_RET_ACTION))
                        ret = cur_ret;