[PATCH] drm/logicvc: Fix layer_node reference leak in logicvc_layers_init()

From: Jason Xiang

Date: Wed Jun 24 2026 - 22:34:27 EST


for_each_child_of_node() returns each child node with its reference
count incremented, so breaking out of the loop early requires
dropping the reference on the current node. In logicvc_layers_init(),
when logicvc_layer_init() fails, the error path releases the parent
"layers" node but not the child node 'layer_node' that the loop is
currently holding, leaking its reference. The leak has been present
since the driver was introduced.

Release 'layer_node' before jumping to the error label.

Fixes: efeeaefe9be5 ("drm: Add support for the LogiCVC display controller")
Signed-off-by: Jason Xiang <jx@xxxxxxxxxxxxxx>
---
drivers/gpu/drm/logicvc/logicvc_layer.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/logicvc/logicvc_layer.c b/drivers/gpu/drm/logicvc/logicvc_layer.c
index 7f5ba000188a..e83a2aafed77 100644
--- a/drivers/gpu/drm/logicvc/logicvc_layer.c
+++ b/drivers/gpu/drm/logicvc/logicvc_layer.c
@@ -613,6 +613,7 @@ int logicvc_layers_init(struct logicvc_drm *logicvc)

ret = logicvc_layer_init(logicvc, layer_node, index);
if (ret) {
+ of_node_put(layer_node);
of_node_put(layers_node);
goto error;
}

base-commit: f0e6f20cb52b14c2c441f04e21cef0c95d498cac
--
2.50.1