diff options
author | Jamal Hadi Salim <jhs@mojatatu.com> | 2013-12-04 15:26:55 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-12-06 01:28:42 +0100 |
commit | 382ca8a1ad8963c7676585f9e25f4c5ff8b28439 (patch) | |
tree | b91db92ae9edfc58e5dec5882487d93553f86da4 /net/sched/act_api.c | |
parent | net_sched: Use default action lookup functions (diff) | |
download | linux-382ca8a1ad8963c7676585f9e25f4c5ff8b28439.tar.xz linux-382ca8a1ad8963c7676585f9e25f4c5ff8b28439.zip |
net_sched: Provide default walker function for actions
Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/act_api.c')
-rw-r--r-- | net/sched/act_api.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/net/sched/act_api.c b/net/sched/act_api.c index d1a022e441be..69cb848e8345 100644 --- a/net/sched/act_api.c +++ b/net/sched/act_api.c @@ -274,8 +274,11 @@ int tcf_register_action(struct tc_action_ops *act) if (!act->act || !act->dump || !act->cleanup || !act->init) return -EINVAL; + /* Supply defaults */ if (!act->lookup) act->lookup = tcf_hash_search; + if (!act->walk) + act->walk = tcf_generic_walker; write_lock(&act_mod_lock); for (ap = &act_base; (a = *ap) != NULL; ap = &a->next) { @@ -1089,12 +1092,6 @@ tc_dump_action(struct sk_buff *skb, struct netlink_callback *cb) memset(&a, 0, sizeof(struct tc_action)); a.ops = a_o; - if (a_o->walk == NULL) { - WARN(1, "tc_dump_action: %s !capable of dumping table\n", - a_o->kind); - goto out_module_put; - } - nlh = nlmsg_put(skb, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq, cb->nlh->nlmsg_type, sizeof(*t), 0); if (!nlh) |