Skip to content

Commit 78e91e4

Browse files
outman119Sasha Levin
authored andcommitted
drm/logicvc: Fix device node reference leak in logicvc_drm_config_parse()
[ Upstream commit fef0e64 ] The logicvc_drm_config_parse() function calls of_get_child_by_name() to find the "layers" node but fails to release the reference, leading to a device node reference leak. Fix this by using the __free(device_node) cleanup attribute to automatic release the reference when the variable goes out of scope. Fixes: efeeaef ("drm: Add support for the LogiCVC display controller") Signed-off-by: Felix Gu <ustc.gu@gmail.com> Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Reviewed-by: Kory Maincent <kory.maincent@bootlin.com> Link: https://patch.msgid.link/20260130-logicvc_drm-v1-1-04366463750c@gmail.com Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 118fd41 commit 78e91e4

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/gpu/drm/logicvc/logicvc_drm.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ static int logicvc_drm_config_parse(struct logicvc_drm *logicvc)
9292
struct device *dev = drm_dev->dev;
9393
struct device_node *of_node = dev->of_node;
9494
struct logicvc_drm_config *config = &logicvc->config;
95-
struct device_node *layers_node;
9695
int ret;
9796

9897
logicvc_of_property_parse_bool(of_node, LOGICVC_OF_PROPERTY_DITHERING,
@@ -128,7 +127,8 @@ static int logicvc_drm_config_parse(struct logicvc_drm *logicvc)
128127
if (ret)
129128
return ret;
130129

131-
layers_node = of_get_child_by_name(of_node, "layers");
130+
struct device_node *layers_node __free(device_node) =
131+
of_get_child_by_name(of_node, "layers");
132132
if (!layers_node) {
133133
drm_err(drm_dev, "Missing non-optional layers node\n");
134134
return -EINVAL;

0 commit comments

Comments
 (0)