]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
fbdev: of_display_timing: Fix device node reference leak in of_get_display_timings()
authorFelix Gu <ustc.gu@gmail.com>
Sat, 31 Jan 2026 12:48:33 +0000 (20:48 +0800)
committerHelge Deller <deller@gmx.de>
Sat, 14 Feb 2026 10:09:47 +0000 (11:09 +0100)
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>
drivers/video/of_display_timing.c

index 1940c9505dd3b3f53b9ab6705f277152ed3f8e9f..a6ec392253c3eee4f90743428cebcb95622f10d6 100644 (file)
@@ -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;