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]

 



> 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>

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