summaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorFelix Gu <ustc.gu@gmail.com>2026-01-31 20:48:33 +0800
committerSasha Levin <sashal@kernel.org>2026-03-04 07:20:25 -0500
commitf620398f0db11c9b1cd3e3e6e9328b587c7b90b4 (patch)
tree035cdfd4b154735d653728291dd3f759ce8d39aa /drivers/video
parentbcd1aea42610a5f057ca31b86aa5f50859b0ff74 (diff)
downloadlinux-f620398f0db11c9b1cd3e3e6e9328b587c7b90b4.tar.gz
linux-f620398f0db11c9b1cd3e3e6e9328b587c7b90b4.tar.bz2
linux-f620398f0db11c9b1cd3e3e6e9328b587c7b90b4.zip
fbdev: of_display_timing: Fix device node reference leak in of_get_display_timings()
[ Upstream commit c39ee2d264f98efa14aa46c9942114cb03c7baa6 ] Use for_each_child_of_node_scoped instead of for_each_child_of_node to ensure automatic of_node_put on early exit paths, preventing device node reference leak. Fixes: cc3f414cf2e4 ("video: add of helper for display timings/videomode") Signed-off-by: Felix Gu <ustc.gu@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/of_display_timing.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/video/of_display_timing.c b/drivers/video/of_display_timing.c
index bebd371c6b93..a4cd446ac5a5 100644
--- a/drivers/video/of_display_timing.c
+++ b/drivers/video/of_display_timing.c
@@ -195,7 +195,7 @@ struct display_timings *of_get_display_timings(const struct device_node *np)
disp->num_timings = 0;
disp->native_mode = 0;
- for_each_child_of_node(timings_np, entry) {
+ for_each_child_of_node_scoped(timings_np, child) {
struct display_timing *dt;
int r;
@@ -206,7 +206,7 @@ struct display_timings *of_get_display_timings(const struct device_node *np)
goto timingfail;
}
- r = of_parse_display_timing(entry, dt);
+ r = of_parse_display_timing(child, dt);
if (r) {
/*
* to not encourage wrong devicetrees, fail in case of
@@ -218,7 +218,7 @@ struct display_timings *of_get_display_timings(const struct device_node *np)
goto timingfail;
}
- if (native_mode == entry)
+ if (native_mode == child)
disp->native_mode = disp->num_timings;
disp->timings[disp->num_timings] = dt;