[PATCH 5.18 110/158] drm/imx/dcss: Add missing of_node_put() in fail path

From: Greg Kroah-Hartman
Date: Wed Jul 27 2022 - 13:41:29 EST


From: Liang He <windhl@xxxxxxx>

[ Upstream commit 02c87df2480ac855d88ee308ce3fa857d9bd55a8 ]

In dcss_dev_create() and dcss_dev_destroy(), we should call of_node_put()
in fail path or before the dcss's destroy as of_graph_get_port_by_id() has
increased the refcount.

Fixes: 9021c317b770 ("drm/imx: Add initial support for DCSS on iMX8MQ")
Signed-off-by: Liang He <windhl@xxxxxxx>
Reviewed-by: Laurentiu Palcu <laurentiu.palcu@xxxxxxxxxxx>
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@xxxxxxxxxxx>
Link: https://patchwork.freedesktop.org/patch/msgid/20220714081337.374761-1-windhl@xxxxxxx
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
---
drivers/gpu/drm/imx/dcss/dcss-dev.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/imx/dcss/dcss-dev.c b/drivers/gpu/drm/imx/dcss/dcss-dev.c
index c849533ca83e..3f5750cc2673 100644
--- a/drivers/gpu/drm/imx/dcss/dcss-dev.c
+++ b/drivers/gpu/drm/imx/dcss/dcss-dev.c
@@ -207,6 +207,7 @@ struct dcss_dev *dcss_dev_create(struct device *dev, bool hdmi_output)

ret = dcss_submodules_init(dcss);
if (ret) {
+ of_node_put(dcss->of_port);
dev_err(dev, "submodules initialization failed\n");
goto clks_err;
}
@@ -237,6 +238,8 @@ void dcss_dev_destroy(struct dcss_dev *dcss)
dcss_clocks_disable(dcss);
}

+ of_node_put(dcss->of_port);
+
pm_runtime_disable(dcss->dev);

dcss_submodules_stop(dcss);
--
2.35.1