Hi all, > -----Original Message----- > From: Biju Das <biju.das...@bp.renesas.com> > Sent: 05 February 2025 11:22 > Subject: [PATCH] drm/tegra: rgb: Fix the unbound reference count > > The of_get_child_by_name() increments the refcount in tegra_dc_rgb_probe, but > the driver does not > decrement the refcount during unbind. Fix the unbound reference count using > devm_add_action_or_reset() > helper. > > Fixes: d8f4a9eda006 ("drm: Add NVIDIA Tegra20 support") > Signed-off-by: Biju Das <biju.das...@bp.renesas.com> > --- > drivers/gpu/drm/tegra/rgb.c | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/tegra/rgb.c b/drivers/gpu/drm/tegra/rgb.c index > 1e8ec50b759e..2065157daab3 100644 > --- a/drivers/gpu/drm/tegra/rgb.c > +++ b/drivers/gpu/drm/tegra/rgb.c > @@ -200,6 +200,11 @@ static const struct drm_encoder_helper_funcs > tegra_rgb_encoder_helper_funcs = { > .atomic_check = tegra_rgb_encoder_atomic_check, }; > > +static void tegra_dc_of_node_put(void *data) { > + of_node_put(data); > +} > + > int tegra_dc_rgb_probe(struct tegra_dc *dc) { > struct device_node *np; > @@ -207,7 +212,14 @@ int tegra_dc_rgb_probe(struct tegra_dc *dc) > int err; > > np = of_get_child_by_name(dc->dev->of_node, "rgb"); > - if (!np || !of_device_is_available(np)) > + if (!np) > + return -ENODEV; > + > + err = devm_add_action_or_reset(dc->dev, tegra_dc_of_node_put, dc->dev); > + if (err < 0) > + return err; > + > + if (!of_device_is_available(np)) > return -ENODEV; > > rgb = devm_kzalloc(dc->dev, sizeof(*rgb), GFP_KERNEL);
Gentle ping. Cheers, Biju