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,
|
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++;
|
||||||
|
Loading…
Reference in New Issue
Block a user