int tcf_exts_validate(struct net *net, struct tcf_proto *tp,
                      struct nlattr **tb, struct nlattr *rate_tlv,
                      struct tcf_exts *exts, bool ovr);
-void tcf_exts_destroy(struct tcf_proto *tp, struct tcf_exts *exts);
+void tcf_exts_destroy(struct tcf_exts *exts);
 void tcf_exts_change(struct tcf_proto *tp, struct tcf_exts *dst,
                     struct tcf_exts *src);
 int tcf_exts_dump(struct sk_buff *skb, struct tcf_exts *exts);
 
        return skb->len;
 }
 
-void tcf_exts_destroy(struct tcf_proto *tp, struct tcf_exts *exts)
+void tcf_exts_destroy(struct tcf_exts *exts)
 {
 #ifdef CONFIG_NET_CLS_ACT
        tcf_action_destroy(&exts->actions, TCA_ACT_UNBIND);
 
        struct tcf_proto *tp = f->tp;
 
        tcf_unbind_filter(tp, &f->res);
-       tcf_exts_destroy(tp, &f->exts);
+       tcf_exts_destroy(&f->exts);
        tcf_em_tree_destroy(tp, &f->ematches);
        kfree(f);
 }
 
        return 0;
 errout:
-       tcf_exts_destroy(tp, &e);
+       tcf_exts_destroy(&e);
        return err;
 }
 
 
 static void cls_bpf_delete_prog(struct tcf_proto *tp, struct cls_bpf_prog *prog)
 {
        tcf_unbind_filter(tp, &prog->res);
-       tcf_exts_destroy(tp, &prog->exts);
+       tcf_exts_destroy(&prog->exts);
 
        bpf_prog_destroy(prog->filter);
 
 errout_free:
        kfree(bpf_ops);
 errout:
-       tcf_exts_destroy(tp, &exts);
+       tcf_exts_destroy(&exts);
        return ret;
 }
 
 
                                                    struct cls_cgroup_head,
                                                    rcu);
 
-       tcf_exts_destroy(head->tp, &head->exts);
+       tcf_exts_destroy(&head->exts);
        tcf_em_tree_destroy(head->tp, &head->ematches);
        kfree(head);
 }
 
        err = tcf_em_tree_validate(tp, tb[TCA_CGROUP_EMATCHES], &t);
        if (err < 0) {
-               tcf_exts_destroy(tp, &e);
+               tcf_exts_destroy(&e);
                goto errout;
        }
 
        struct cls_cgroup_head *head = rtnl_dereference(tp->root);
 
        if (head) {
-               tcf_exts_destroy(tp, &head->exts);
+               tcf_exts_destroy(&head->exts);
                tcf_em_tree_destroy(tp, &head->ematches);
                RCU_INIT_POINTER(tp->root, NULL);
                kfree_rcu(head, rcu);
 
        struct flow_filter *f = container_of(head, struct flow_filter, rcu);
 
        del_timer_sync(&f->perturb_timer);
-       tcf_exts_destroy(f->tp, &f->exts);
+       tcf_exts_destroy(&f->exts);
        tcf_em_tree_destroy(f->tp, &f->ematches);
        kfree(f);
 }
        tcf_em_tree_destroy(tp, &t);
        kfree(fnew);
 err1:
-       tcf_exts_destroy(tp, &e);
+       tcf_exts_destroy(&e);
        return err;
 }
 
 
        struct tcf_proto *tp = f->tp;
 
        tcf_unbind_filter(tp, &f->res);
-       tcf_exts_destroy(tp, &f->exts);
+       tcf_exts_destroy(&f->exts);
        kfree(f);
 }
 
 
        return 0;
 errout:
-       tcf_exts_destroy(tp, &e);
+       tcf_exts_destroy(&e);
        return err;
 }
 
 
        struct tcf_proto *tp = f->tp;
 
        tcf_unbind_filter(tp, &f->res);
-       tcf_exts_destroy(tp, &f->exts);
+       tcf_exts_destroy(&f->exts);
        kfree(f);
 }
 
 
        return 0;
 errout:
-       tcf_exts_destroy(tp, &e);
+       tcf_exts_destroy(&e);
        return err;
 }
 
 
 rsvp_delete_filter(struct tcf_proto *tp, struct rsvp_filter *f)
 {
        tcf_unbind_filter(tp, &f->res);
-       tcf_exts_destroy(tp, &f->exts);
+       tcf_exts_destroy(&f->exts);
        kfree_rcu(f, rcu);
 }
 
 errout:
        kfree(f);
 errout2:
-       tcf_exts_destroy(tp, &e);
+       tcf_exts_destroy(&e);
        return err;
 }
 
 
                rcu_assign_pointer(*walk, rtnl_dereference(f->next));
        }
        tcf_unbind_filter(tp, &r->res);
-       tcf_exts_destroy(tp, &r->exts);
+       tcf_exts_destroy(&r->exts);
        if (f)
                kfree_rcu(f, rcu);
        return 0;
                kfree(cp->h);
 errout:
        kfree(cp);
-       tcf_exts_destroy(tp, &e);
+       tcf_exts_destroy(&e);
        return err;
 }
 
 
                           bool free_pf)
 {
        tcf_unbind_filter(tp, &n->res);
-       tcf_exts_destroy(tp, &n->exts);
+       tcf_exts_destroy(&n->exts);
        if (n->ht_down)
                n->ht_down->refcnt--;
 #ifdef CONFIG_CLS_U32_PERF
 
        return 0;
 errout:
-       tcf_exts_destroy(tp, &e);
+       tcf_exts_destroy(&e);
        return err;
 }