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:
parent
18abc64bfe
commit
f875790e6a
@ -1028,7 +1028,6 @@ static int ab8500_gpadc_parse_channels(struct ab8500_gpadc *gpadc,
|
||||
struct iio_chan_spec **chans_parsed,
|
||||
unsigned int *nchans_parsed)
|
||||
{
|
||||
struct fwnode_handle *child;
|
||||
struct ab8500_gpadc_chan_info *ch;
|
||||
struct iio_chan_spec *iio_chans;
|
||||
unsigned int nchans;
|
||||
@ -1052,7 +1051,7 @@ static int ab8500_gpadc_parse_channels(struct ab8500_gpadc *gpadc,
|
||||
return -ENOMEM;
|
||||
|
||||
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;
|
||||
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,
|
||||
iio_chan);
|
||||
if (ret) {
|
||||
fwnode_handle_put(child);
|
||||
return ret;
|
||||
}
|
||||
i++;
|
||||
|
Loading…
Reference in New Issue
Block a user