diff mbox series

[1/1] staging: iio: adc: ad7280a: handle error from __ad7280_read32()

Message ID 20181020210411.GA7662@x220.localdomain (mailing list archive)
State New, archived
Headers show
Series [1/1] staging: iio: adc: ad7280a: handle error from __ad7280_read32() | expand

Commit Message

Slawomir Stepien Oct. 20, 2018, 9:04 p.m. UTC
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(-)

Comments

Jonathan Cameron Oct. 21, 2018, 1:17 p.m. UTC | #1
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;
>
diff mbox series

Patch

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;