Hi Krzysztof, On Fri, Aug 23, 2024 at 2:51 PM Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: > Obtain the device node reference with scoped/cleanup.h to reduce error > handling and make the code a bit simpler. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> Thanks for your patch! > --- a/drivers/pmdomain/renesas/rcar-gen4-sysc.c > +++ b/drivers/pmdomain/renesas/rcar-gen4-sysc.c > @@ -303,12 +304,12 @@ static int __init rcar_gen4_sysc_pd_init(void) > const struct rcar_gen4_sysc_info *info; > const struct of_device_id *match; > struct rcar_gen4_pm_domains *domains; > - struct device_node *np; > void __iomem *base; > unsigned int i; > int error; > > - np = of_find_matching_node_and_match(NULL, rcar_gen4_sysc_matches, &match); > + struct device_node *np __free(device_node) = > + of_find_matching_node_and_match(NULL, rcar_gen4_sysc_matches, &match); This breaks the declarations/blank-line/code structure, so please move this up. If you insist on keeping assignment to and validation of np together, the line should be split in declaration and assignment. > if (!np) > return -ENODEV; > > @@ -369,14 +365,12 @@ static int __init rcar_gen4_sysc_pd_init(void) > if (error) { > pr_warn("Failed to add PM subdomain %s to parent %u\n", > area->name, area->parent); > - goto out_put; > + return error; > } > } > > error = of_genpd_add_provider_onecell(np, &domains->onecell_data); > > -out_put: > - of_node_put(np); > return error; return of_genpd_add_provider_onecell(...); > } > early_initcall(rcar_gen4_sysc_pd_init); Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx 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