net: sched: fix block->refcnt decrement
authorJiri Pirko <jiri@mellanox.com>
Wed, 8 Aug 2018 12:04:13 +0000 (14:04 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 9 Aug 2018 21:12:04 +0000 (14:12 -0700)
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 <vladbu@mellanox.com>
Fixes: f71e0ca4db18 ("net: sched: Avoid implicit chain 0 creation")
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_api.c

index 194c2e0b27372878448979bfdeee3fadb932cd52..f922ce27ed5ef13d45bcbed01e3741e1a4656482 100644 (file)
@@ -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);