From: Jiri Pirko <j...@mellanox.com>

Currently the refcnt is never decremented in case the value is not 1.
Fix it by adding decrement in case the refcnt is not 1.

Reported-by: Vlad Buslov <vla...@mellanox.com>
Fixes: f71e0ca4db18 ("net: sched: Avoid implicit chain 0 creation")
Signed-off-by: Jiri Pirko <j...@mellanox.com>
---
 net/sched/cls_api.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index 194c2e0b2737..f922ce27ed5e 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -780,6 +780,8 @@ void tcf_block_put_ext(struct tcf_block *block, struct 
Qdisc *q,
                block->refcnt--;
                if (list_empty(&block->chain_list))
                        kfree(block);
+       } else {
+               block->refcnt--;
        }
 }
 EXPORT_SYMBOL(tcf_block_put_ext);
-- 
2.14.4

Reply via email to