On Tue, 6 Jan 2026 10:04:29 +0000 Jonathan Cameron <[email protected]> wrote:
> On Mon, 05 Jan 2026 14:33:40 +0100 > Krzysztof Kozlowski <[email protected]> wrote: > > > Use scoped for-each loop when iterating over device nodes to make code a > > bit simpler. > > > > Signed-off-by: Krzysztof Kozlowski <[email protected]> > Interesting bit of code. I guess there is some history here that didn't > get captured as a comment? > > > > > --- > > > > Depends on the first patch. > > --- > > arch/arm/mach-at91/pm.c | 7 ++----- > > 1 file changed, 2 insertions(+), 5 deletions(-) > > > > diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c > > index 35058b99069c..68bb4a86cd94 100644 > > --- a/arch/arm/mach-at91/pm.c > > +++ b/arch/arm/mach-at91/pm.c > > @@ -982,15 +982,12 @@ static void __init at91_pm_sram_init(void) > > struct gen_pool *sram_pool; > > phys_addr_t sram_pbase; > > unsigned long sram_base; > > - struct device_node *node; > > struct platform_device *pdev = NULL; > > > > - for_each_compatible_node(node, NULL, "mmio-sram") { > > + for_each_compatible_node_scoped(node, NULL, "mmio-sram") { > > pdev = of_find_device_by_node(node); > > - if (pdev) { > > - of_node_put(node); > > + if (pdev) > > break; > > - > } > I'm curious if there are DT out there that ever causes the code to get to > here? There might be multiple mmio-sram nodes but if there were seems > unlikely > the driver wants which ever one has a pdev at a given point in time. > That feels like a weird race condition. So in practice I'd expect this to > always either get the first one, or none. > e.g. Why this can't just be > > node = of_find_node_by_name("mmio-sram); ah. Not name obviously. Need more coffee. of_find_compatible_node() > if (node) { > pdev = of_find_device_by_node(node); > } > > or something along those lines. > > Given risk of a regression maybe better to do what you have here. > So with that in mind > Reviewed-by: Jonathan Cameron <[email protected]> > > > } > > > > if (!pdev) { > > >
