1

iio: adc: ab8500-gpadc: Use device_for_each_child_node_scoped() to simplify erorr paths.

This new loop definition automatically releases the handle on early exit
reducing the chance of bugs that cause resource leaks.

Cc: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Nuno Sa <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20240330190849.1321065-4-jic23@kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
Jonathan Cameron 2024-03-30 19:08:44 +00:00
parent 18abc64bfe
commit f875790e6a

View File

@ -1028,7 +1028,6 @@ static int ab8500_gpadc_parse_channels(struct ab8500_gpadc *gpadc,
struct iio_chan_spec **chans_parsed, struct iio_chan_spec **chans_parsed,
unsigned int *nchans_parsed) unsigned int *nchans_parsed)
{ {
struct fwnode_handle *child;
struct ab8500_gpadc_chan_info *ch; struct ab8500_gpadc_chan_info *ch;
struct iio_chan_spec *iio_chans; struct iio_chan_spec *iio_chans;
unsigned int nchans; unsigned int nchans;
@ -1052,7 +1051,7 @@ static int ab8500_gpadc_parse_channels(struct ab8500_gpadc *gpadc,
return -ENOMEM; return -ENOMEM;
i = 0; i = 0;
device_for_each_child_node(gpadc->dev, child) { device_for_each_child_node_scoped(gpadc->dev, child) {
struct iio_chan_spec *iio_chan; struct iio_chan_spec *iio_chan;
int ret; int ret;
@ -1062,7 +1061,6 @@ static int ab8500_gpadc_parse_channels(struct ab8500_gpadc *gpadc,
ret = ab8500_gpadc_parse_channel(gpadc->dev, child, ch, ret = ab8500_gpadc_parse_channel(gpadc->dev, child, ch,
iio_chan); iio_chan);
if (ret) { if (ret) {
fwnode_handle_put(child);
return ret; return ret;
} }
i++; i++;