diff options
author | Jiri Pirko <jiri@resnulli.us> | 2014-12-02 18:00:32 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-12-09 02:53:40 +0100 |
commit | 472f58370128d5e18f9d5429313a87d0f30af45e (patch) | |
tree | df8757348be586aeffab2f72fa6fbaf6e75386f5 /net/sched | |
parent | net_sched: cls_basic: remove unnecessary iteration and use passed arg (diff) | |
download | linux-472f58370128d5e18f9d5429313a87d0f30af45e.tar.xz linux-472f58370128d5e18f9d5429313a87d0f30af45e.zip |
net_sched: cls_bpf: remove unnecessary iteration and use passed arg
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Acked-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched')
-rw-r--r-- | net/sched/cls_bpf.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c index eed49d1d0878..cbfaf6f8feb3 100644 --- a/net/sched/cls_bpf.c +++ b/net/sched/cls_bpf.c @@ -109,19 +109,12 @@ static void __cls_bpf_delete_prog(struct rcu_head *rcu) static int cls_bpf_delete(struct tcf_proto *tp, unsigned long arg) { - struct cls_bpf_head *head = rtnl_dereference(tp->root); - struct cls_bpf_prog *prog, *todel = (struct cls_bpf_prog *) arg; - - list_for_each_entry(prog, &head->plist, link) { - if (prog == todel) { - list_del_rcu(&prog->link); - tcf_unbind_filter(tp, &prog->res); - call_rcu(&prog->rcu, __cls_bpf_delete_prog); - return 0; - } - } + struct cls_bpf_prog *prog = (struct cls_bpf_prog *) arg; - return -ENOENT; + list_del_rcu(&prog->link); + tcf_unbind_filter(tp, &prog->res); + call_rcu(&prog->rcu, __cls_bpf_delete_prog); + return 0; } static void cls_bpf_destroy(struct tcf_proto *tp) |