Linux IIO development
 help / color / mirror / Atom feed
* [PATCH 0/2] IIO: Use of device_for_each_child_node_scoped() in ti-ads131e08
@ 2024-04-20 18:27 Lorenzo Bertin Salvador
  2024-04-20 18:27 ` [PATCH 1/2] iio: adc: ti-ads131e08: Use device_for_each_child_node_scoped() to simplify error paths Lorenzo Bertin Salvador
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Lorenzo Bertin Salvador @ 2024-04-20 18:27 UTC (permalink / raw)
  To: jic23; +Cc: Lorenzo Bertin Salvador, linux-iio

This series is making use of device_for_each_child_node_scoped() to avoid
the need to remember to call fwnode_handle_put() in early exits from
loops over the child nodes. It is also correcting a minor style problem
in drivers/iio/adc/ti-ads131e08.c

Lorenzo Bertin Salvador (2):
  iio: adc: ti-ads131e08: Use device_for_each_child_node_scoped() to
    simplify error paths.
  iio: adc: ti-ads131e08: Fix a style problem in struct declaration.

 drivers/iio/adc/ti-ads131e08.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] iio: adc: ti-ads131e08: Use device_for_each_child_node_scoped() to simplify error paths.
  2024-04-20 18:27 [PATCH 0/2] IIO: Use of device_for_each_child_node_scoped() in ti-ads131e08 Lorenzo Bertin Salvador
@ 2024-04-20 18:27 ` Lorenzo Bertin Salvador
  2024-04-21 17:43   ` Jonathan Cameron
  2024-04-20 18:27 ` [PATCH 2/2] iio: adc: ti-ads131e08: Fix a style problem in struct declaration Lorenzo Bertin Salvador
  2024-04-21 17:40 ` [PATCH 0/2] IIO: Use of device_for_each_child_node_scoped() in ti-ads131e08 Jonathan Cameron
  2 siblings, 1 reply; 6+ messages in thread
From: Lorenzo Bertin Salvador @ 2024-04-20 18:27 UTC (permalink / raw)
  To: jic23; +Cc: Lorenzo Bertin Salvador, Briza Mel Dias de Sousa, linux-iio

This loop definition automatically releases the handle on early exit
reducing the chance of bugs that cause resource leaks.

Co-developed-by: Briza Mel Dias de Sousa <brizamel.dias@usp.br>
Signed-off-by: Briza Mel Dias de Sousa <brizamel.dias@usp.br>
Signed-off-by: Lorenzo Bertin Salvador <lorenzobs@usp.br>
---
 drivers/iio/adc/ti-ads131e08.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/iio/adc/ti-ads131e08.c b/drivers/iio/adc/ti-ads131e08.c
index fcfc46254..cb04a29b3 100644
--- a/drivers/iio/adc/ti-ads131e08.c
+++ b/drivers/iio/adc/ti-ads131e08.c
@@ -694,7 +694,6 @@ static int ads131e08_alloc_channels(struct iio_dev *indio_dev)
 	struct ads131e08_channel_config *channel_config;
 	struct device *dev = &st->spi->dev;
 	struct iio_chan_spec *channels;
-	struct fwnode_handle *node;
 	unsigned int channel, tmp;
 	int num_channels, i, ret;
 
@@ -736,10 +735,10 @@ static int ads131e08_alloc_channels(struct iio_dev *indio_dev)
 		return -ENOMEM;
 
 	i = 0;
-	device_for_each_child_node(dev, node) {
+	device_for_each_child_node_scoped(dev, node) {
 		ret = fwnode_property_read_u32(node, "reg", &channel);
 		if (ret)
-			goto err_child_out;
+			return ret;
 
 		ret = fwnode_property_read_u32(node, "ti,gain", &tmp);
 		if (ret) {
@@ -747,7 +746,7 @@ static int ads131e08_alloc_channels(struct iio_dev *indio_dev)
 		} else {
 			ret = ads131e08_pga_gain_to_field_value(st, tmp);
 			if (ret < 0)
-				goto err_child_out;
+				return ret;
 
 			channel_config[i].pga_gain = tmp;
 		}
@@ -758,7 +757,7 @@ static int ads131e08_alloc_channels(struct iio_dev *indio_dev)
 		} else {
 			ret = ads131e08_validate_channel_mux(st, tmp);
 			if (ret)
-				goto err_child_out;
+				return ret;
 
 			channel_config[i].mux = tmp;
 		}
@@ -785,9 +784,6 @@ static int ads131e08_alloc_channels(struct iio_dev *indio_dev)
 
 	return 0;
 
-err_child_out:
-	fwnode_handle_put(node);
-	return ret;
 }
 
 static void ads131e08_regulator_disable(void *data)
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] iio: adc: ti-ads131e08: Fix a style problem in struct declaration.
  2024-04-20 18:27 [PATCH 0/2] IIO: Use of device_for_each_child_node_scoped() in ti-ads131e08 Lorenzo Bertin Salvador
  2024-04-20 18:27 ` [PATCH 1/2] iio: adc: ti-ads131e08: Use device_for_each_child_node_scoped() to simplify error paths Lorenzo Bertin Salvador
@ 2024-04-20 18:27 ` Lorenzo Bertin Salvador
  2024-04-21 17:27   ` Jonathan Cameron
  2024-04-21 17:40 ` [PATCH 0/2] IIO: Use of device_for_each_child_node_scoped() in ti-ads131e08 Jonathan Cameron
  2 siblings, 1 reply; 6+ messages in thread
From: Lorenzo Bertin Salvador @ 2024-04-20 18:27 UTC (permalink / raw)
  To: jic23; +Cc: Lorenzo Bertin Salvador, Briza Mel Dias de Sousa, linux-iio

There was a blank line missing after declarations in struct tmp_buf.

Co-developed-by: Briza Mel Dias de Sousa <brizamel.dias@usp.br>
Signed-off-by: Briza Mel Dias de Sousa <brizamel.dias@usp.br>
Signed-off-by: Lorenzo Bertin Salvador <lorenzobs@usp.br>
---
 drivers/iio/adc/ti-ads131e08.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/iio/adc/ti-ads131e08.c b/drivers/iio/adc/ti-ads131e08.c
index cb04a29b3..fcc0276bf 100644
--- a/drivers/iio/adc/ti-ads131e08.c
+++ b/drivers/iio/adc/ti-ads131e08.c
@@ -102,6 +102,7 @@ struct ads131e08_state {
 	struct completion completion;
 	struct {
 		u8 data[ADS131E08_NUM_DATA_BYTES_MAX];
+
 		s64 ts __aligned(8);
 	} tmp_buf;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] iio: adc: ti-ads131e08: Fix a style problem in struct declaration.
  2024-04-20 18:27 ` [PATCH 2/2] iio: adc: ti-ads131e08: Fix a style problem in struct declaration Lorenzo Bertin Salvador
@ 2024-04-21 17:27   ` Jonathan Cameron
  0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Cameron @ 2024-04-21 17:27 UTC (permalink / raw)
  To: Lorenzo Bertin Salvador; +Cc: Briza Mel Dias de Sousa, linux-iio

On Sat, 20 Apr 2024 15:27:44 -0300
Lorenzo Bertin Salvador <lorenzobs@usp.br> wrote:

> There was a blank line missing after declarations in struct tmp_buf.
> 
> Co-developed-by: Briza Mel Dias de Sousa <brizamel.dias@usp.br>
> Signed-off-by: Briza Mel Dias de Sousa <brizamel.dias@usp.br>
> Signed-off-by: Lorenzo Bertin Salvador <lorenzobs@usp.br>
That's a checkpatch.pl (I assume) bug.
These are both declarations, just the second one is more complex than most :)

Feel free to try and fix check patch but this isn't something we are going
to 'fix' in code.

Thanks,

Jonathan

> ---
>  drivers/iio/adc/ti-ads131e08.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/iio/adc/ti-ads131e08.c b/drivers/iio/adc/ti-ads131e08.c
> index cb04a29b3..fcc0276bf 100644
> --- a/drivers/iio/adc/ti-ads131e08.c
> +++ b/drivers/iio/adc/ti-ads131e08.c
> @@ -102,6 +102,7 @@ struct ads131e08_state {
>  	struct completion completion;
>  	struct {
>  		u8 data[ADS131E08_NUM_DATA_BYTES_MAX];
> +
>  		s64 ts __aligned(8);
>  	} tmp_buf;
>  


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/2] IIO: Use of device_for_each_child_node_scoped() in ti-ads131e08
  2024-04-20 18:27 [PATCH 0/2] IIO: Use of device_for_each_child_node_scoped() in ti-ads131e08 Lorenzo Bertin Salvador
  2024-04-20 18:27 ` [PATCH 1/2] iio: adc: ti-ads131e08: Use device_for_each_child_node_scoped() to simplify error paths Lorenzo Bertin Salvador
  2024-04-20 18:27 ` [PATCH 2/2] iio: adc: ti-ads131e08: Fix a style problem in struct declaration Lorenzo Bertin Salvador
@ 2024-04-21 17:40 ` Jonathan Cameron
  2 siblings, 0 replies; 6+ messages in thread
From: Jonathan Cameron @ 2024-04-21 17:40 UTC (permalink / raw)
  To: Lorenzo Bertin Salvador; +Cc: linux-iio

On Sat, 20 Apr 2024 15:27:42 -0300
Lorenzo Bertin Salvador <lorenzobs@usp.br> wrote:

> This series is making use of device_for_each_child_node_scoped() to avoid
> the need to remember to call fwnode_handle_put() in early exits from
> loops over the child nodes. It is also correcting a minor style problem
> in drivers/iio/adc/ti-ads131e08.c
> 
> Lorenzo Bertin Salvador (2):
>   iio: adc: ti-ads131e08: Use device_for_each_child_node_scoped() to
>     simplify error paths.
>   iio: adc: ti-ads131e08: Fix a style problem in struct declaration.

The title of the cover letter only reflects one of these patches and
needs to cover them both.  However, for tidying up type actions a vague
title like iio: adc: ti-ads131e08: code style improvements
would be fine as long as the description gives a more detailed listing
of what is going on.  That's covered by your description above.

Thanks,

Jonathan

> 
>  drivers/iio/adc/ti-ads131e08.c | 13 +++++--------
>  1 file changed, 5 insertions(+), 8 deletions(-)
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] iio: adc: ti-ads131e08: Use device_for_each_child_node_scoped() to simplify error paths.
  2024-04-20 18:27 ` [PATCH 1/2] iio: adc: ti-ads131e08: Use device_for_each_child_node_scoped() to simplify error paths Lorenzo Bertin Salvador
@ 2024-04-21 17:43   ` Jonathan Cameron
  0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Cameron @ 2024-04-21 17:43 UTC (permalink / raw)
  To: Lorenzo Bertin Salvador; +Cc: Briza Mel Dias de Sousa, linux-iio

On Sat, 20 Apr 2024 15:27:43 -0300
Lorenzo Bertin Salvador <lorenzobs@usp.br> wrote:

> This loop definition automatically releases the handle on early exit
> reducing the chance of bugs that cause resource leaks.
> 
> Co-developed-by: Briza Mel Dias de Sousa <brizamel.dias@usp.br>
> Signed-off-by: Briza Mel Dias de Sousa <brizamel.dias@usp.br>
> Signed-off-by: Lorenzo Bertin Salvador <lorenzobs@usp.br>
Good patch.
Applied to the togreg branch of iio.git, but I'll only push it out
as testing today so that 0-day (an autobuilder) can see if it can
find anything that we have missed.

Thanks,

Jonathan

> ---
>  drivers/iio/adc/ti-ads131e08.c | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/iio/adc/ti-ads131e08.c b/drivers/iio/adc/ti-ads131e08.c
> index fcfc46254..cb04a29b3 100644
> --- a/drivers/iio/adc/ti-ads131e08.c
> +++ b/drivers/iio/adc/ti-ads131e08.c
> @@ -694,7 +694,6 @@ static int ads131e08_alloc_channels(struct iio_dev *indio_dev)
>  	struct ads131e08_channel_config *channel_config;
>  	struct device *dev = &st->spi->dev;
>  	struct iio_chan_spec *channels;
> -	struct fwnode_handle *node;
>  	unsigned int channel, tmp;
>  	int num_channels, i, ret;
>  
> @@ -736,10 +735,10 @@ static int ads131e08_alloc_channels(struct iio_dev *indio_dev)
>  		return -ENOMEM;
>  
>  	i = 0;
> -	device_for_each_child_node(dev, node) {
> +	device_for_each_child_node_scoped(dev, node) {
>  		ret = fwnode_property_read_u32(node, "reg", &channel);
>  		if (ret)
> -			goto err_child_out;
> +			return ret;
>  
>  		ret = fwnode_property_read_u32(node, "ti,gain", &tmp);
>  		if (ret) {
> @@ -747,7 +746,7 @@ static int ads131e08_alloc_channels(struct iio_dev *indio_dev)
>  		} else {
>  			ret = ads131e08_pga_gain_to_field_value(st, tmp);
>  			if (ret < 0)
> -				goto err_child_out;
> +				return ret;
>  
>  			channel_config[i].pga_gain = tmp;
>  		}
> @@ -758,7 +757,7 @@ static int ads131e08_alloc_channels(struct iio_dev *indio_dev)
>  		} else {
>  			ret = ads131e08_validate_channel_mux(st, tmp);
>  			if (ret)
> -				goto err_child_out;
> +				return ret;
>  
>  			channel_config[i].mux = tmp;
>  		}
> @@ -785,9 +784,6 @@ static int ads131e08_alloc_channels(struct iio_dev *indio_dev)
>  
>  	return 0;
>  
> -err_child_out:
> -	fwnode_handle_put(node);
> -	return ret;
>  }
>  
>  static void ads131e08_regulator_disable(void *data)


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-04-21 17:43 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-20 18:27 [PATCH 0/2] IIO: Use of device_for_each_child_node_scoped() in ti-ads131e08 Lorenzo Bertin Salvador
2024-04-20 18:27 ` [PATCH 1/2] iio: adc: ti-ads131e08: Use device_for_each_child_node_scoped() to simplify error paths Lorenzo Bertin Salvador
2024-04-21 17:43   ` Jonathan Cameron
2024-04-20 18:27 ` [PATCH 2/2] iio: adc: ti-ads131e08: Fix a style problem in struct declaration Lorenzo Bertin Salvador
2024-04-21 17:27   ` Jonathan Cameron
2024-04-21 17:40 ` [PATCH 0/2] IIO: Use of device_for_each_child_node_scoped() in ti-ads131e08 Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox