summaryrefslogtreecommitdiff
path: root/net/sched/cls_flower.c
diff options
context:
space:
mode:
authorRoi Dayan <roid@mellanox.com>2016-11-01 16:08:28 +0200
committerDavid S. Miller <davem@davemloft.net>2016-11-02 15:00:47 -0400
commita1a8f7fe92a23af30d5e766316452b5312061fa2 (patch)
treea0db03fc2e8762d47280f8bdc1eb88ce5d01826f /net/sched/cls_flower.c
parent4cb551a100bcd7cbe810c57ae551bf89312bc0d3 (diff)
downloadlwn-a1a8f7fe92a23af30d5e766316452b5312061fa2.tar.gz
lwn-a1a8f7fe92a23af30d5e766316452b5312061fa2.zip
net/sched: cls_flower: add missing unbind call when destroying flows
tcf_unbind was called in fl_delete but was missing in fl_destroy when force deleting flows. Fixes: 77b9900ef53a ('tc: introduce Flower classifier') Signed-off-by: Roi Dayan <roid@mellanox.com> Reviewed-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/cls_flower.c')
-rw-r--r--net/sched/cls_flower.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c
index f6f40fba599b..a5f637011f9f 100644
--- a/net/sched/cls_flower.c
+++ b/net/sched/cls_flower.c
@@ -280,6 +280,7 @@ static bool fl_destroy(struct tcf_proto *tp, bool force)
list_for_each_entry_safe(f, next, &head->filters, list) {
fl_hw_destroy_filter(tp, (unsigned long)f);
list_del_rcu(&f->list);
+ tcf_unbind_filter(tp, &f->res);
call_rcu(&f->rcu, fl_destroy_filter);
}
RCU_INIT_POINTER(tp->root, NULL);