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 <r...@mellanox.com>
Reviewed-by: Jiri Pirko <j...@mellanox.com>
---
 net/sched/cls_flower.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c
index f6f40fb..a5f6370 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);
-- 
2.7.4

Reply via email to