On 06/01/2026 11:17, Jonathan Cameron wrote: > On Mon, 05 Jan 2026 14:33:44 +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]> > I'd be tempted to make one more tweak in this one to bring > it inline with the suggestions around not combining scoped cleanups > with gotos (see the comments in cleanup.h) > > No bug here, just nice to have. >> >> --- >> >> Depends on the first patch. >> --- >> drivers/cdx/cdx.c | 4 +--- >> 1 file changed, 1 insertion(+), 3 deletions(-) >> >> diff --git a/drivers/cdx/cdx.c b/drivers/cdx/cdx.c >> index b39af2f1937f..bbde529aaa93 100644 >> --- a/drivers/cdx/cdx.c >> +++ b/drivers/cdx/cdx.c >> @@ -608,7 +608,6 @@ static ssize_t rescan_store(const struct bus_type *bus, >> { >> struct cdx_controller *cdx; >> struct platform_device *pd; >> - struct device_node *np; >> bool val; >> >> if (kstrtobool(buf, &val) < 0) >> @@ -623,10 +622,9 @@ static ssize_t rescan_store(const struct bus_type *bus, >> cdx_unregister_devices(&cdx_bus_type); >> >> /* Rescan all the devices */ >> - for_each_compatible_node(np, NULL, compat_node_name) { >> + for_each_compatible_node_scoped(np, NULL, compat_node_name) { >> pd = of_find_device_by_node(np); >> if (!pd) { >> - of_node_put(np); >> count = -EINVAL; >> goto unlock; > break instead. > Or better yet a follow up patch to use guard() for the mutex allowing a > direct return here.
Oh yes and it allows to drop that -EINVAL assignment to size_t. Best regards, Krzysztof
