net_sched: Default action lookup method for actions
authorJamal Hadi Salim <jhs@mojatatu.com>
Wed, 4 Dec 2013 14:26:53 +0000 (09:26 -0500)
committerDavid S. Miller <davem@davemloft.net>
Fri, 6 Dec 2013 00:28:42 +0000 (19:28 -0500)
Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/act_api.c

index 618695e841901296c58284c84b8210a5f867e8b1..d1a022e441bee510515177e2766e607056e5fcfc 100644 (file)
@@ -274,6 +274,9 @@ int tcf_register_action(struct tc_action_ops *act)
        if (!act->act || !act->dump || !act->cleanup || !act->init)
                return -EINVAL;
 
+       if (!act->lookup)
+               act->lookup = tcf_hash_search;
+
        write_lock(&act_mod_lock);
        for (ap = &act_base; (a = *ap) != NULL; ap = &a->next) {
                if (act->type == a->type || (strcmp(act->kind, a->kind) == 0)) {
@@ -727,8 +730,6 @@ tcf_action_get_1(struct nlattr *nla, struct nlmsghdr *n, u32 portid)
        a->ops = tc_lookup_action(tb[TCA_ACT_KIND]);
        if (a->ops == NULL)
                goto err_free;
-       if (a->ops->lookup == NULL)
-               goto err_mod;
        err = -ENOENT;
        if (a->ops->lookup(a, index) == 0)
                goto err_mod;