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

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

 



On Sat, 20 Oct 2018 23:04:11 +0200
Slawomir Stepien <sst@xxxxxxxxx> 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@xxxxxxxxx>

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




[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