net_sched: remove the first parameter from tcf_exts_destroy()
Cc: Jamal Hadi Salim <jhs@mojatatu.com> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Acked-by: Jamal Hadi Salim <hadi@mojatatu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5804283d7c
commit
18d0264f63
@ -137,7 +137,7 @@ tcf_exts_exec(struct sk_buff *skb, struct tcf_exts *exts,
|
|||||||
int tcf_exts_validate(struct net *net, struct tcf_proto *tp,
|
int tcf_exts_validate(struct net *net, struct tcf_proto *tp,
|
||||||
struct nlattr **tb, struct nlattr *rate_tlv,
|
struct nlattr **tb, struct nlattr *rate_tlv,
|
||||||
struct tcf_exts *exts, bool ovr);
|
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,
|
void tcf_exts_change(struct tcf_proto *tp, struct tcf_exts *dst,
|
||||||
struct tcf_exts *src);
|
struct tcf_exts *src);
|
||||||
int tcf_exts_dump(struct sk_buff *skb, struct tcf_exts *exts);
|
int tcf_exts_dump(struct sk_buff *skb, struct tcf_exts *exts);
|
||||||
|
@ -496,7 +496,7 @@ out:
|
|||||||
return skb->len;
|
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
|
#ifdef CONFIG_NET_CLS_ACT
|
||||||
tcf_action_destroy(&exts->actions, TCA_ACT_UNBIND);
|
tcf_action_destroy(&exts->actions, TCA_ACT_UNBIND);
|
||||||
|
@ -94,7 +94,7 @@ static void basic_delete_filter(struct rcu_head *head)
|
|||||||
struct tcf_proto *tp = f->tp;
|
struct tcf_proto *tp = f->tp;
|
||||||
|
|
||||||
tcf_unbind_filter(tp, &f->res);
|
tcf_unbind_filter(tp, &f->res);
|
||||||
tcf_exts_destroy(tp, &f->exts);
|
tcf_exts_destroy(&f->exts);
|
||||||
tcf_em_tree_destroy(tp, &f->ematches);
|
tcf_em_tree_destroy(tp, &f->ematches);
|
||||||
kfree(f);
|
kfree(f);
|
||||||
}
|
}
|
||||||
@ -161,7 +161,7 @@ static int basic_set_parms(struct net *net, struct tcf_proto *tp,
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
errout:
|
errout:
|
||||||
tcf_exts_destroy(tp, &e);
|
tcf_exts_destroy(&e);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ static int cls_bpf_init(struct tcf_proto *tp)
|
|||||||
static void cls_bpf_delete_prog(struct tcf_proto *tp, struct cls_bpf_prog *prog)
|
static void cls_bpf_delete_prog(struct tcf_proto *tp, struct cls_bpf_prog *prog)
|
||||||
{
|
{
|
||||||
tcf_unbind_filter(tp, &prog->res);
|
tcf_unbind_filter(tp, &prog->res);
|
||||||
tcf_exts_destroy(tp, &prog->exts);
|
tcf_exts_destroy(&prog->exts);
|
||||||
|
|
||||||
bpf_prog_destroy(prog->filter);
|
bpf_prog_destroy(prog->filter);
|
||||||
|
|
||||||
@ -217,7 +217,7 @@ static int cls_bpf_modify_existing(struct net *net, struct tcf_proto *tp,
|
|||||||
errout_free:
|
errout_free:
|
||||||
kfree(bpf_ops);
|
kfree(bpf_ops);
|
||||||
errout:
|
errout:
|
||||||
tcf_exts_destroy(tp, &exts);
|
tcf_exts_destroy(&exts);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ static void cls_cgroup_destroy_rcu(struct rcu_head *root)
|
|||||||
struct cls_cgroup_head,
|
struct cls_cgroup_head,
|
||||||
rcu);
|
rcu);
|
||||||
|
|
||||||
tcf_exts_destroy(head->tp, &head->exts);
|
tcf_exts_destroy(&head->exts);
|
||||||
tcf_em_tree_destroy(head->tp, &head->ematches);
|
tcf_em_tree_destroy(head->tp, &head->ematches);
|
||||||
kfree(head);
|
kfree(head);
|
||||||
}
|
}
|
||||||
@ -135,7 +135,7 @@ static int cls_cgroup_change(struct net *net, struct sk_buff *in_skb,
|
|||||||
|
|
||||||
err = tcf_em_tree_validate(tp, tb[TCA_CGROUP_EMATCHES], &t);
|
err = tcf_em_tree_validate(tp, tb[TCA_CGROUP_EMATCHES], &t);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
tcf_exts_destroy(tp, &e);
|
tcf_exts_destroy(&e);
|
||||||
goto errout;
|
goto errout;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -156,7 +156,7 @@ static void cls_cgroup_destroy(struct tcf_proto *tp)
|
|||||||
struct cls_cgroup_head *head = rtnl_dereference(tp->root);
|
struct cls_cgroup_head *head = rtnl_dereference(tp->root);
|
||||||
|
|
||||||
if (head) {
|
if (head) {
|
||||||
tcf_exts_destroy(tp, &head->exts);
|
tcf_exts_destroy(&head->exts);
|
||||||
tcf_em_tree_destroy(tp, &head->ematches);
|
tcf_em_tree_destroy(tp, &head->ematches);
|
||||||
RCU_INIT_POINTER(tp->root, NULL);
|
RCU_INIT_POINTER(tp->root, NULL);
|
||||||
kfree_rcu(head, rcu);
|
kfree_rcu(head, rcu);
|
||||||
|
@ -354,7 +354,7 @@ static void flow_destroy_filter(struct rcu_head *head)
|
|||||||
struct flow_filter *f = container_of(head, struct flow_filter, rcu);
|
struct flow_filter *f = container_of(head, struct flow_filter, rcu);
|
||||||
|
|
||||||
del_timer_sync(&f->perturb_timer);
|
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);
|
tcf_em_tree_destroy(f->tp, &f->ematches);
|
||||||
kfree(f);
|
kfree(f);
|
||||||
}
|
}
|
||||||
@ -533,7 +533,7 @@ err2:
|
|||||||
tcf_em_tree_destroy(tp, &t);
|
tcf_em_tree_destroy(tp, &t);
|
||||||
kfree(fnew);
|
kfree(fnew);
|
||||||
err1:
|
err1:
|
||||||
tcf_exts_destroy(tp, &e);
|
tcf_exts_destroy(&e);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,7 +126,7 @@ static void fw_delete_filter(struct rcu_head *head)
|
|||||||
struct tcf_proto *tp = f->tp;
|
struct tcf_proto *tp = f->tp;
|
||||||
|
|
||||||
tcf_unbind_filter(tp, &f->res);
|
tcf_unbind_filter(tp, &f->res);
|
||||||
tcf_exts_destroy(tp, &f->exts);
|
tcf_exts_destroy(&f->exts);
|
||||||
kfree(f);
|
kfree(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -223,7 +223,7 @@ fw_change_attrs(struct net *net, struct tcf_proto *tp, struct fw_filter *f,
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
errout:
|
errout:
|
||||||
tcf_exts_destroy(tp, &e);
|
tcf_exts_destroy(&e);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -272,7 +272,7 @@ route4_delete_filter(struct rcu_head *head)
|
|||||||
struct tcf_proto *tp = f->tp;
|
struct tcf_proto *tp = f->tp;
|
||||||
|
|
||||||
tcf_unbind_filter(tp, &f->res);
|
tcf_unbind_filter(tp, &f->res);
|
||||||
tcf_exts_destroy(tp, &f->exts);
|
tcf_exts_destroy(&f->exts);
|
||||||
kfree(f);
|
kfree(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -456,7 +456,7 @@ static int route4_set_parms(struct net *net, struct tcf_proto *tp,
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
errout:
|
errout:
|
||||||
tcf_exts_destroy(tp, &e);
|
tcf_exts_destroy(&e);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -264,7 +264,7 @@ static void
|
|||||||
rsvp_delete_filter(struct tcf_proto *tp, struct rsvp_filter *f)
|
rsvp_delete_filter(struct tcf_proto *tp, struct rsvp_filter *f)
|
||||||
{
|
{
|
||||||
tcf_unbind_filter(tp, &f->res);
|
tcf_unbind_filter(tp, &f->res);
|
||||||
tcf_exts_destroy(tp, &f->exts);
|
tcf_exts_destroy(&f->exts);
|
||||||
kfree_rcu(f, rcu);
|
kfree_rcu(f, rcu);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -577,7 +577,7 @@ insert:
|
|||||||
errout:
|
errout:
|
||||||
kfree(f);
|
kfree(f);
|
||||||
errout2:
|
errout2:
|
||||||
tcf_exts_destroy(tp, &e);
|
tcf_exts_destroy(&e);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ found:
|
|||||||
rcu_assign_pointer(*walk, rtnl_dereference(f->next));
|
rcu_assign_pointer(*walk, rtnl_dereference(f->next));
|
||||||
}
|
}
|
||||||
tcf_unbind_filter(tp, &r->res);
|
tcf_unbind_filter(tp, &r->res);
|
||||||
tcf_exts_destroy(tp, &r->exts);
|
tcf_exts_destroy(&r->exts);
|
||||||
if (f)
|
if (f)
|
||||||
kfree_rcu(f, rcu);
|
kfree_rcu(f, rcu);
|
||||||
return 0;
|
return 0;
|
||||||
@ -401,7 +401,7 @@ errout_alloc:
|
|||||||
kfree(cp->h);
|
kfree(cp->h);
|
||||||
errout:
|
errout:
|
||||||
kfree(cp);
|
kfree(cp);
|
||||||
tcf_exts_destroy(tp, &e);
|
tcf_exts_destroy(&e);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -359,7 +359,7 @@ static int u32_destroy_key(struct tcf_proto *tp,
|
|||||||
bool free_pf)
|
bool free_pf)
|
||||||
{
|
{
|
||||||
tcf_unbind_filter(tp, &n->res);
|
tcf_unbind_filter(tp, &n->res);
|
||||||
tcf_exts_destroy(tp, &n->exts);
|
tcf_exts_destroy(&n->exts);
|
||||||
if (n->ht_down)
|
if (n->ht_down)
|
||||||
n->ht_down->refcnt--;
|
n->ht_down->refcnt--;
|
||||||
#ifdef CONFIG_CLS_U32_PERF
|
#ifdef CONFIG_CLS_U32_PERF
|
||||||
@ -606,7 +606,7 @@ static int u32_set_parms(struct net *net, struct tcf_proto *tp,
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
errout:
|
errout:
|
||||||
tcf_exts_destroy(tp, &e);
|
tcf_exts_destroy(&e);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user