[PATCH] drm/tidss: Fix serial clock reference leak in tidss_oldi_init()

Wentao Liang posted 1 patch 1 week, 1 day ago
drivers/gpu/drm/tidss/tidss_oldi.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] drm/tidss: Fix serial clock reference leak in tidss_oldi_init()
Posted by Wentao Liang 1 week, 1 day ago
The reference to the OLDI serial clock taken with
of_clk_get_by_name() is kept in the OLDI bridge structure for the
whole driver lifetime but is never released; neither the bridge
destruction nor tidss_oldi_deinit() drop it.  Release it when the
bridge is unregistered.

Fixes: 7246e0929945 ("drm/tidss: Add OLDI bridge support")
Cc: stable@vger.kernel.org
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
---
 drivers/gpu/drm/tidss/tidss_oldi.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/tidss/tidss_oldi.c b/drivers/gpu/drm/tidss/tidss_oldi.c
index 17c535bfa057..bd151c83555d 100644
--- a/drivers/gpu/drm/tidss/tidss_oldi.c
+++ b/drivers/gpu/drm/tidss/tidss_oldi.c
@@ -450,6 +450,7 @@ void tidss_oldi_deinit(struct tidss_device *tidss)
 	for (int i = 0; i < tidss->num_oldis; i++) {
 		if (tidss->oldis[i]) {
 			drm_bridge_remove(&tidss->oldis[i]->bridge);
+			clk_put(tidss->oldis[i]->serial);
 			tidss->is_ext_vp_clk[tidss->oldis[i]->parent_vp] = false;
 			tidss->oldis[i] = NULL;
 		}
-- 
2.34.1