lkml.org 
[lkml]   [2019]   [Feb]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.20 003/352] staging: iio: adc: ad7280a: handle error from __ad7280_read32()
    Date
    4.20-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    [ Upstream commit 0559ef7fde67bc6c83c6eb6329dbd6649528263e ]

    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>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    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 58420dcb406d..cbeb52485a31 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


    \
     
     \ /
      Last update: 2019-02-11 17:16    [W:4.053 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site