From e4386456ae4eca2104e67f70a8ff7b7c949fb248 Mon Sep 17 00:00:00 2001 From: Jiri Pirko Date: Tue, 2 Dec 2014 18:00:31 +0100 Subject: [PATCH] net_sched: cls_basic: remove unnecessary iteration and use passed arg Signed-off-by: Jiri Pirko Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller --- net/sched/cls_basic.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/net/sched/cls_basic.c b/net/sched/cls_basic.c index cd61280941e5..1c122c7e0549 100644 --- a/net/sched/cls_basic.c +++ b/net/sched/cls_basic.c @@ -113,18 +113,12 @@ static void basic_destroy(struct tcf_proto *tp) static int basic_delete(struct tcf_proto *tp, unsigned long arg) { - struct basic_head *head = rtnl_dereference(tp->root); - struct basic_filter *t, *f = (struct basic_filter *) arg; + struct basic_filter *f = (struct basic_filter *) arg; - list_for_each_entry(t, &head->flist, link) - if (t == f) { - list_del_rcu(&t->link); - tcf_unbind_filter(tp, &t->res); - call_rcu(&t->rcu, basic_delete_filter); - return 0; - } - - return -ENOENT; + list_del_rcu(&f->link); + tcf_unbind_filter(tp, &f->res); + call_rcu(&f->rcu, basic_delete_filter); + return 0; } static const struct nla_policy basic_policy[TCA_BASIC_MAX + 1] = {