* [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.