From: Vlad Buslov <vla...@mellanox.com> Date: Wed, 6 Mar 2019 17:50:43 +0200
> When used with unlocked classifier that have filters attached to actions > with goto chain, __tcf_chain_put() for last non action reference can race > with calls to same function from action cleanup code that releases last > action reference. In this case action cleanup handler could free the chain > if it executes after all references to chain were released, but before all > concurrent users finished using it. Modify __tcf_chain_put() to only access > tcf_chain fields when holding block->lock. Remove local variables that were > used to cache some tcf_chain fields and are no longer needed because their > values can now be obtained directly from chain under block->lock > protection. > > Fixes: 726d061286ce ("net: sched: prevent insertion of new classifiers during > chain flush") > Signed-off-by: Vlad Buslov <vla...@mellanox.com> Applied, thanks Vlad.