[PATCH 06/11] cdx: Simplify with scoped for each OF child loop
Krzysztof Kozlowski
krzysztof.kozlowski at oss.qualcomm.com
Sat Jan 10 03:11:41 AEDT 2026
On 06/01/2026 11:17, Jonathan Cameron wrote:
> On Mon, 05 Jan 2026 14:33:44 +0100
> Krzysztof Kozlowski <krzysztof.kozlowski at oss.qualcomm.com> wrote:
>
>> Use scoped for-each loop when iterating over device nodes to make code a
>> bit simpler.
>>
>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski at oss.qualcomm.com>
> 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
More information about the Linuxppc-dev
mailing list