Re: [PATCH v5 4/9] iio: adc: rzg2l_adc: Use device_for_each_child_node_scoped()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 27 Feb 2024 09:52:28 +0000
Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> wrote:

> > From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> > 
> > 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: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> > ---
> >  drivers/iio/adc/rzg2l_adc.c | 11 +++--------
> >  1 file changed, 3 insertions(+), 8 deletions(-)
> >   
> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
> 
I already picked up some of this series piecemeal so I'll keep going!

Applied to the togreg branch of iio.git and pushed out as testing for 0-day to take a look.

Thanks!

Jonathan

> Cheers,
> Prabhakar
> 
> > diff --git a/drivers/iio/adc/rzg2l_adc.c b/drivers/iio/adc/rzg2l_adc.c index
> > 0921ff2d9b3a..cd3a7e46ea53 100644
> > --- a/drivers/iio/adc/rzg2l_adc.c
> > +++ b/drivers/iio/adc/rzg2l_adc.c
> > @@ -302,7 +302,6 @@ static irqreturn_t rzg2l_adc_isr(int irq, void *dev_id)  static int
> > rzg2l_adc_parse_properties(struct platform_device *pdev, struct rzg2l_adc *adc)  {
> >  	struct iio_chan_spec *chan_array;
> > -	struct fwnode_handle *fwnode;
> >  	struct rzg2l_adc_data *data;
> >  	unsigned int channel;
> >  	int num_channels;
> > @@ -330,17 +329,13 @@ static int rzg2l_adc_parse_properties(struct platform_device *pdev, struct rzg2l
> >  		return -ENOMEM;
> > 
> >  	i = 0;
> > -	device_for_each_child_node(&pdev->dev, fwnode) {
> > +	device_for_each_child_node_scoped(&pdev->dev, fwnode) {
> >  		ret = fwnode_property_read_u32(fwnode, "reg", &channel);
> > -		if (ret) {
> > -			fwnode_handle_put(fwnode);
> > +		if (ret)
> >  			return ret;
> > -		}
> > 
> > -		if (channel >= RZG2L_ADC_MAX_CHANNELS) {
> > -			fwnode_handle_put(fwnode);
> > +		if (channel >= RZG2L_ADC_MAX_CHANNELS)
> >  			return -EINVAL;
> > -		}
> > 
> >  		chan_array[i].type = IIO_VOLTAGE;
> >  		chan_array[i].indexed = 1;
> > --
> > 2.44.0  
> 





[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux