aboutsummaryrefslogtreecommitdiffstats
path: root/net/sched/act_api.c
diff options
context:
space:
mode:
authorWANG Cong <xiyou.wangcong@gmail.com>2017-05-23 09:42:37 -0700
committerDavid S. Miller <davem@davemloft.net>2017-05-25 12:15:05 -0400
commit367a8ce896f14018cc2c6cf2681aa440fff274f4 (patch)
tree50c730e41e49111e669a94750700c3acddb7b1ef /net/sched/act_api.c
parentnet: sched: cls_api: make reclassify return all the way back to the original tp (diff)
downloadlinux-dev-367a8ce896f14018cc2c6cf2681aa440fff274f4.tar.xz
linux-dev-367a8ce896f14018cc2c6cf2681aa440fff274f4.zip
net_sched: only create filter chains for new filters/actions
tcf_chain_get() always creates a new filter chain if not found in existing ones. This is totally unnecessary when we get or delete filters, new chain should be only created for new filters (or new actions). Fixes: 5bc1701881e3 ("net: sched: introduce multichain support for filters") Cc: Jamal Hadi Salim <jhs@mojatatu.com> Cc: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.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.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sched/act_api.c b/net/sched/act_api.c
index 0ecf2a858767..aed6cf2e9fd8 100644
--- a/net/sched/act_api.c
+++ b/net/sched/act_api.c
@@ -34,7 +34,7 @@ static int tcf_action_goto_chain_init(struct tc_action *a, struct tcf_proto *tp)
if (!tp)
return -EINVAL;
- a->goto_chain = tcf_chain_get(tp->chain->block, chain_index);
+ a->goto_chain = tcf_chain_get(tp->chain->block, chain_index, true);
if (!a->goto_chain)
return -ENOMEM;
return 0;