Messages in this thread | | | From | Geert Uytterhoeven <> | Date | Thu, 6 Jul 2023 09:53:05 +0200 | Subject | Re: [PATCH] drivers: bus: Fix resource leaks in for_each_available_child_of_node loop |
| |
On Thu, Jul 6, 2023 at 9:43 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote: > On Thu, Jul 6, 2023 at 9:13 AM Lu Hongfei <luhongfei@vivo.com> wrote: > > Ensure child node references are decremented properly in > > the error path. > > Which error path? > > > > > Signed-off-by: Lu Hongfei <luhongfei@vivo.com> > > --- > > drivers/bus/imx-weim.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/bus/imx-weim.c b/drivers/bus/imx-weim.c > > index 52a5d0447390..d05472f7c20f 100644 > > --- a/drivers/bus/imx-weim.c > > +++ b/drivers/bus/imx-weim.c > > @@ -251,6 +251,7 @@ static int weim_parse_dt(struct platform_device *pdev) > > else > > have_child = 1; > > } > > + of_node_put(child); > > This is not an error path. > > for_each_available_child_of_node() walks a list, getting a reference > to each child, and releasing the reference afterwards.
FTR, calling of_node_put() manually is only needed when breaking out of for_each_available_child_of_node().
> > Have you tested this patch? > I expect the of_node_put() to trigger a refcount underflow error > message on the console. > > > > > if (have_child) > > ret = of_platform_default_populate(pdev->dev.of_node,
Gr{oetje,eeting}s,
Geert
-- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
| |