iio: dac: ad5770r: Use device_for_each_child_node_scoped()
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 30 Mar 2024 18:53:05 +0000 (18:53 +0000)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 6 Apr 2024 10:18:51 +0000 (11:18 +0100)
Switching to the _scoped() version removes the need for manual
calling of fwnode_handle_put() in the paths where the code
exits the loop early. In this case that's all in error paths.

Cc: Nuno Sá <nuno.sa@analog.com>
Reviewed-by: Nuno Sa <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20240330185305.1319844-9-jic23@kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/dac/ad5770r.c

index f66d67402e4365360816a949c32e7d3e9ecbb22e..c360ebf5297ab9461e25ae831af2c291346c66aa 100644 (file)
@@ -515,39 +515,32 @@ static int ad5770r_channel_config(struct ad5770r_state *st)
 {
        int ret, tmp[2], min, max;
        unsigned int num;
-       struct fwnode_handle *child;
 
        num = device_get_child_node_count(&st->spi->dev);
        if (num != AD5770R_MAX_CHANNELS)
                return -EINVAL;
 
-       device_for_each_child_node(&st->spi->dev, child) {
+       device_for_each_child_node_scoped(&st->spi->dev, child) {
                ret = fwnode_property_read_u32(child, "reg", &num);
                if (ret)
-                       goto err_child_out;
-               if (num >= AD5770R_MAX_CHANNELS) {
-                       ret = -EINVAL;
-                       goto err_child_out;
-               }
+                       return ret;
+               if (num >= AD5770R_MAX_CHANNELS)
+                       return -EINVAL;
 
                ret = fwnode_property_read_u32_array(child,
                                                     "adi,range-microamp",
                                                     tmp, 2);
                if (ret)
-                       goto err_child_out;
+                       return ret;
 
                min = tmp[0] / 1000;
                max = tmp[1] / 1000;
                ret = ad5770r_store_output_range(st, min, max, num);
                if (ret)
-                       goto err_child_out;
+                       return ret;
        }
 
        return 0;
-
-err_child_out:
-       fwnode_handle_put(child);
-       return ret;
 }
 
 static int ad5770r_init(struct ad5770r_state *st)