aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorJamal Hadi Salim <jhs@mojatatu.com>2013-12-04 09:26:55 -0500
committerDavid S. Miller <davem@davemloft.net>2013-12-05 19:28:42 -0500
commit382ca8a1ad8963c7676585f9e25f4c5ff8b28439 (patch)
treeb91db92ae9edfc58e5dec5882487d93553f86da4 /net
parentnet_sched: Use default action lookup functions (diff)
downloadlinux-dev-382ca8a1ad8963c7676585f9e25f4c5ff8b28439.tar.xz
linux-dev-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 '')
-rw-r--r--net/sched/act_api.c9
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)