[PATCH] drm/bridge: lt8912b: Fix next_bridge reference leak in lt8912_parse_dt()

Wentao Liang posted 1 patch 1 week, 1 day ago
drivers/gpu/drm/bridge/lontium-lt8912b.c | 2 ++
1 file changed, 2 insertions(+)
[PATCH] drm/bridge: lt8912b: Fix next_bridge reference leak in lt8912_parse_dt()
Posted by Wentao Liang 1 week, 1 day ago
lt8912_parse_dt() takes a reference to the next bridge in the
pipeline with of_drm_find_and_get_bridge() and stores it in
lt->bridge.next_bridge, but neither the error paths after the lookup
nor the driver teardown release it.  Drop the reference in the
err_free_host_node label and in lt8912_put_dt().

Fixes: 31cb3cd7e714 ("drm/bridge: lt8912b: convert to of_drm_find_and_get_bridge()")
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
---
 drivers/gpu/drm/bridge/lontium-lt8912b.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/bridge/lontium-lt8912b.c b/drivers/gpu/drm/bridge/lontium-lt8912b.c
index 8a0b48efca58..fa6cdad3f517 100644
--- a/drivers/gpu/drm/bridge/lontium-lt8912b.c
+++ b/drivers/gpu/drm/bridge/lontium-lt8912b.c
@@ -743,6 +743,7 @@ static int lt8912_parse_dt(struct lt8912 *lt)
 	return 0;
 
 err_free_host_node:
+	drm_bridge_put(lt->bridge.next_bridge);
 	of_node_put(port_node);
 	of_node_put(lt->host_node);
 	return ret;
@@ -750,6 +751,7 @@ static int lt8912_parse_dt(struct lt8912 *lt)
 
 static int lt8912_put_dt(struct lt8912 *lt)
 {
+	drm_bridge_put(lt->bridge.next_bridge);
 	of_node_put(lt->host_node);
 	return 0;
 }
-- 
2.34.1