All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] staging: iio: adc: ad7280a: handle error from __ad7280_read32()
@ 2018-10-20 21:04 Slawomir Stepien
  2018-10-21 13:17 ` Jonathan Cameron
  0 siblings, 1 reply; 2+ messages in thread
From: Slawomir Stepien @ 2018-10-20 21:04 UTC (permalink / raw)
  To: lars, Michael.Hennerich, jic23, knaack.h, pmeerw; +Cc: linux-iio, gregkh

Inside __ad7280_read32(), the spi_sync_transfer() can fail with negative
error code. This change will ensure that this error is being passed up
in the call stack, so it can be handled.

Signed-off-by: Slawomir Stepien <sst@poczta.fm>
---
 drivers/staging/iio/adc/ad7280a.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c
index b736275c10f5..6a48ad067a8b 100644
--- a/drivers/staging/iio/adc/ad7280a.c
+++ b/drivers/staging/iio/adc/ad7280a.c
@@ -256,7 +256,9 @@ static int ad7280_read(struct ad7280_state *st, unsigned int devaddr,
 	if (ret)
 		return ret;
 
-	__ad7280_read32(st, &tmp);
+	ret = __ad7280_read32(st, &tmp);
+	if (ret)
+		return ret;
 
 	if (ad7280_check_crc(st, tmp))
 		return -EIO;
@@ -294,7 +296,9 @@ static int ad7280_read_channel(struct ad7280_state *st, unsigned int devaddr,
 
 	ad7280_delay(st);
 
-	__ad7280_read32(st, &tmp);
+	ret = __ad7280_read32(st, &tmp);
+	if (ret)
+		return ret;
 
 	if (ad7280_check_crc(st, tmp))
 		return -EIO;
@@ -327,7 +331,9 @@ static int ad7280_read_all_channels(struct ad7280_state *st, unsigned int cnt,
 	ad7280_delay(st);
 
 	for (i = 0; i < cnt; i++) {
-		__ad7280_read32(st, &tmp);
+		ret = __ad7280_read32(st, &tmp);
+		if (ret)
+			return ret;
 
 		if (ad7280_check_crc(st, tmp))
 			return -EIO;
@@ -370,7 +376,10 @@ static int ad7280_chain_setup(struct ad7280_state *st)
 		return ret;
 
 	for (n = 0; n <= AD7280A_MAX_CHAIN; n++) {
-		__ad7280_read32(st, &val);
+		ret = __ad7280_read32(st, &val);
+		if (ret)
+			return ret;
+
 		if (val == 0)
 			return n - 1;
 
-- 
2.19.1

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

* Re: [PATCH 1/1] staging: iio: adc: ad7280a: handle error from __ad7280_read32()
  2018-10-20 21:04 [PATCH 1/1] staging: iio: adc: ad7280a: handle error from __ad7280_read32() Slawomir Stepien
@ 2018-10-21 13:17 ` Jonathan Cameron
  0 siblings, 0 replies; 2+ messages in thread
From: Jonathan Cameron @ 2018-10-21 13:17 UTC (permalink / raw)
  To: Slawomir Stepien
  Cc: lars, Michael.Hennerich, knaack.h, pmeerw, linux-iio, gregkh

On Sat, 20 Oct 2018 23:04:11 +0200
Slawomir Stepien <sst@poczta.fm> wrote:

> Inside __ad7280_read32(), the spi_sync_transfer() can fail with negative
> error code. This change will ensure that this error is being passed up
> in the call stack, so it can be handled.
> 
> Signed-off-by: Slawomir Stepien <sst@poczta.fm>

Looks good to me.

Applied to the togreg branch of iio.git and pushed out as testing
for the autobuilders to play with it.

Thanks,

Jonathan
> ---
>  drivers/staging/iio/adc/ad7280a.c | 17 +++++++++++++----
>  1 file changed, 13 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c
> index b736275c10f5..6a48ad067a8b 100644
> --- a/drivers/staging/iio/adc/ad7280a.c
> +++ b/drivers/staging/iio/adc/ad7280a.c
> @@ -256,7 +256,9 @@ static int ad7280_read(struct ad7280_state *st, unsigned int devaddr,
>  	if (ret)
>  		return ret;
>  
> -	__ad7280_read32(st, &tmp);
> +	ret = __ad7280_read32(st, &tmp);
> +	if (ret)
> +		return ret;
>  
>  	if (ad7280_check_crc(st, tmp))
>  		return -EIO;
> @@ -294,7 +296,9 @@ static int ad7280_read_channel(struct ad7280_state *st, unsigned int devaddr,
>  
>  	ad7280_delay(st);
>  
> -	__ad7280_read32(st, &tmp);
> +	ret = __ad7280_read32(st, &tmp);
> +	if (ret)
> +		return ret;
>  
>  	if (ad7280_check_crc(st, tmp))
>  		return -EIO;
> @@ -327,7 +331,9 @@ static int ad7280_read_all_channels(struct ad7280_state *st, unsigned int cnt,
>  	ad7280_delay(st);
>  
>  	for (i = 0; i < cnt; i++) {
> -		__ad7280_read32(st, &tmp);
> +		ret = __ad7280_read32(st, &tmp);
> +		if (ret)
> +			return ret;
>  
>  		if (ad7280_check_crc(st, tmp))
>  			return -EIO;
> @@ -370,7 +376,10 @@ static int ad7280_chain_setup(struct ad7280_state *st)
>  		return ret;
>  
>  	for (n = 0; n <= AD7280A_MAX_CHAIN; n++) {
> -		__ad7280_read32(st, &val);
> +		ret = __ad7280_read32(st, &val);
> +		if (ret)
> +			return ret;
> +
>  		if (val == 0)
>  			return n - 1;
>  

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

end of thread, other threads:[~2018-10-21 21:32 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-20 21:04 [PATCH 1/1] staging: iio: adc: ad7280a: handle error from __ad7280_read32() Slawomir Stepien
2018-10-21 13:17 ` Jonathan Cameron

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.