[PATCH] drm/tegra: fix device leak on probe()

Johan Hovold posted 1 patch 1 week, 3 days ago
drivers/gpu/drm/tegra/dc.c | 2 ++
1 file changed, 2 insertions(+)
[PATCH] drm/tegra: fix device leak on probe()
Posted by Johan Hovold 1 week, 3 days ago
Make sure to drop the reference taken when looking up the companion
device during probe().

Note that holding a reference to a device does not prevent its driver
data from going away so there is no point in keeping the reference.

Fixes: f68ba6912bd2 ("drm/tegra: dc: Link DC1 to DC0 on Tegra20")
Cc: stable@vger.kernel.org	# 4.16
Cc: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/gpu/drm/tegra/dc.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
index 59d5c1ba145a..7a6b30df6a89 100644
--- a/drivers/gpu/drm/tegra/dc.c
+++ b/drivers/gpu/drm/tegra/dc.c
@@ -3148,6 +3148,8 @@ static int tegra_dc_couple(struct tegra_dc *dc)
 		dc->client.parent = &parent->client;
 
 		dev_dbg(dc->dev, "coupled to %s\n", dev_name(companion));
+
+		put_device(companion);
 	}
 
 	return 0;
-- 
2.51.2
Re: [PATCH] drm/tegra: fix device leak on probe()
Posted by Johan Hovold 1 week ago
On Fri, Nov 21, 2025 at 12:24:32PM +0100, Johan Hovold wrote:
> Make sure to drop the reference taken when looking up the companion
> device during probe().
> 
> Note that holding a reference to a device does not prevent its driver
> data from going away so there is no point in keeping the reference.
> 
> Fixes: f68ba6912bd2 ("drm/tegra: dc: Link DC1 to DC0 on Tegra20")
> Cc: stable@vger.kernel.org	# 4.16
> Cc: Dmitry Osipenko <digetx@gmail.com>
> Signed-off-by: Johan Hovold <johan@kernel.org>
> ---
>  drivers/gpu/drm/tegra/dc.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
> index 59d5c1ba145a..7a6b30df6a89 100644
> --- a/drivers/gpu/drm/tegra/dc.c
> +++ b/drivers/gpu/drm/tegra/dc.c
> @@ -3148,6 +3148,8 @@ static int tegra_dc_couple(struct tegra_dc *dc)
>  		dc->client.parent = &parent->client;
>  
>  		dev_dbg(dc->dev, "coupled to %s\n", dev_name(companion));
> +
> +		put_device(companion);

I noticed that this has been fixed in rc7 when rebasing so please
disregard this one.

Johan