On Tue, May 17, 2022 at 5:44 AM Jialin Zhang <zhangjialin11@xxxxxxxxxx> wrote: > > fwnode_handle_put() should be used when terminating > device_for_each_child_node() iteration with break or > return to prevent stale device node references from > being left behind. > > Fixes: d484c21bacfa ("iio: adc: Add driver for Renesas RZ/G2L A/D converter") > Reported-by: Hulk Robot <hulkci@xxxxxxxxxx> > Signed-off-by: Jialin Zhang <zhangjialin11@xxxxxxxxxx> > --- > drivers/iio/adc/rzg2l_adc.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> Cheers, Prabhakar > diff --git a/drivers/iio/adc/rzg2l_adc.c b/drivers/iio/adc/rzg2l_adc.c > index 7585144b9715..5b09a93fdf34 100644 > --- a/drivers/iio/adc/rzg2l_adc.c > +++ b/drivers/iio/adc/rzg2l_adc.c > @@ -334,11 +334,15 @@ static int rzg2l_adc_parse_properties(struct platform_device *pdev, struct rzg2l > i = 0; > device_for_each_child_node(&pdev->dev, fwnode) { > ret = fwnode_property_read_u32(fwnode, "reg", &channel); > - if (ret) > + if (ret) { > + fwnode_handle_put(fwnode); > return ret; > + } > > - if (channel >= RZG2L_ADC_MAX_CHANNELS) > + if (channel >= RZG2L_ADC_MAX_CHANNELS) { > + fwnode_handle_put(fwnode); > return -EINVAL; > + } > > chan_array[i].type = IIO_VOLTAGE; > chan_array[i].indexed = 1; > -- > 2.25.1 >