Re: [PATCH -next 8/8] soc: ti: knav_qmss_queue: Simplify with scoped for each OF child loop
From: Kousik Sanagavarapu <hidden>
Date: 2024-08-29 15:58:40
Also in:
linux-arm-kernel, linux-tegra, lkml
From: Kousik Sanagavarapu <hidden>
Date: 2024-08-29 15:58:40
Also in:
linux-arm-kernel, linux-tegra, lkml
Jinjie Ruan [off-list ref] writes:
@@ -1080,17 +1080,13 @@ static int knav_queue_setup_regions(struct knav_device *kdev, { struct device *dev = kdev->dev; struct knav_region *region; - struct device_node *child; u32 temp[2]; int ret; - for_each_child_of_node(regions, child) { + for_each_child_of_node_scoped(regions, child) {
Are you sure using *_scoped() is better here? Since it seems that we need the memory pointed to by "child" in cases where we don't go into an error path.
region = devm_kzalloc(dev, sizeof(*region), GFP_KERNEL);
- if (!region) {
- of_node_put(child);
- dev_err(dev, "out of memory allocating region\n");
- return -ENOMEM;
- }
+ if (!region)
+ return dev_err_probe(dev, -ENOMEM, "out of memory allocating region\n");
region->name = knav_queue_find_name(child);
of_property_read_u32(child, "id", ®ion->id);Similarly in most of the other cases in this series where a similar change is done. Also FYI, as for dev_err_probe(), I think I covered all of them in this file and a patch for it is currently sitting in ti-drivers-soc-next. Thanks