lib/genalloc: fix device leak in of_gen_pool_get()
Subsystems (2)
PATCH 1/1 lib/genalloc: fix device leak in of_gen_pool_get()
Make sure to drop the reference taken when looking up the genpool platform device in of_gen_pool_get() before returning the pool.
Note that holding a reference to a device does typically not prevent its devres managed resources from being released so there is no point in keeping the reference.
Fixes 9375db07adea ("genalloc: add devres support, allow to find a managed pool by device")
Cc [email protected] # 3.10
Cc Philipp Zabel <[email protected]>
Signed-off-by Johan Hovold <[email protected]>
--- lib/genalloc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
lib/genalloc.c +4 -1
@@ -899,8 +899,11 @@ struct gen_pool *of_gen_pool_get(struct device_node *np,if (!name) name =of_node_full_name (np_pool); } -if (pdev) +if (pdev) { pool =gen_pool_get (&pdev->dev, name); +put_device (&pdev->dev); + } +of_node_put (np_pool);return pool;
Signature · 1 line
2.49.1