[PATCH] mfd: altera-sysmgr: fix device leak on sysmgr regmap lookup

Johan Hovold posted 1 patch 4 months, 2 weeks ago
drivers/mfd/altera-sysmgr.c | 2 ++
1 file changed, 2 insertions(+)
[PATCH] mfd: altera-sysmgr: fix device leak on sysmgr regmap lookup
Posted by Johan Hovold 4 months, 2 weeks ago
Make sure to drop the reference taken to the sysmgr platform device when
retrieving its driver data.

Note that holding a reference to a device does not prevent its driver
data from going away.

Fixes: f36e789a1f8d ("mfd: altera-sysmgr: Add SOCFPGA System Manager")
Cc: stable@vger.kernel.org	# 5.2
Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/mfd/altera-sysmgr.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/mfd/altera-sysmgr.c b/drivers/mfd/altera-sysmgr.c
index fb5f988e61f3..90c6902d537d 100644
--- a/drivers/mfd/altera-sysmgr.c
+++ b/drivers/mfd/altera-sysmgr.c
@@ -117,6 +117,8 @@ struct regmap *altr_sysmgr_regmap_lookup_by_phandle(struct device_node *np,
 
 	sysmgr = dev_get_drvdata(dev);
 
+	put_device(dev);
+
 	return sysmgr->regmap;
 }
 EXPORT_SYMBOL_GPL(altr_sysmgr_regmap_lookup_by_phandle);
-- 
2.49.1
Re: (subset) [PATCH] mfd: altera-sysmgr: fix device leak on sysmgr regmap lookup
Posted by Lee Jones 4 months ago
On Thu, 25 Sep 2025 17:02:19 +0200, Johan Hovold wrote:
> Make sure to drop the reference taken to the sysmgr platform device when
> retrieving its driver data.
> 
> Note that holding a reference to a device does not prevent its driver
> data from going away.
> 
> 
> [...]

Applied, thanks!

[1/1] mfd: altera-sysmgr: fix device leak on sysmgr regmap lookup
      commit: e6ce75fac4a299805939e33f9f104829ba9ffdcc

--
Lee Jones [李琼斯]

Re: [PATCH] mfd: altera-sysmgr: fix device leak on sysmgr regmap lookup
Posted by Markus Elfring 4 months, 1 week ago
> Make sure to drop the reference taken to the sysmgr platform device when
> retrieving its driver data.
…

How do you think about to increase the application of scope-based resource management?
https://elixir.bootlin.com/linux/v6.17-rc7/source/include/linux/device.h#L1180

Regards,
Markus