mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-02 04:41:10 -04:00
fbdev: of_display_timing: Fix device node reference leak in of_get_display_timings()
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: cc3f414cf2 ("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>
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user