summaryrefslogtreecommitdiffstats
path: root/drivers/iio
diff options
context:
space:
mode:
authorAlexandru Ardelean <alexandru.ardelean@analog.com>2019-11-01 11:35:03 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-01-17 19:45:48 +0100
commit9d9aee7be0dbb89d6ce4e64c996110a050727d54 (patch)
tree5d0bbc176d9d9ab1371ece072f9632e2fa13bc37 /drivers/iio
parent34ed0dfdd8f561a05bbc62aae31ac29cc9cb8d07 (diff)
downloadlinux-stable-9d9aee7be0dbb89d6ce4e64c996110a050727d54.tar.gz
linux-stable-9d9aee7be0dbb89d6ce4e64c996110a050727d54.tar.bz2
linux-stable-9d9aee7be0dbb89d6ce4e64c996110a050727d54.zip
iio: imu: adis16480: assign bias value only if operation succeeded
commit 9b742763d9d4195e823ae6ece760c9ed0500c1dc upstream. This was found only after the whole thing with the inline functions, but the compiler actually found something. The value of the `bias` (in adis16480_get_calibbias()) should only be set if the read operation was successful. No actual known problem occurs as users of this function all ultimately check the return value. Hence probably not stable material. Fixes: 2f3abe6cbb6c9 ("iio:imu: Add support for the ADIS16480 and similar IMUs") Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/iio')
-rw-r--r--drivers/iio/imu/adis16480.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/iio/imu/adis16480.c b/drivers/iio/imu/adis16480.c
index c950aa10d0ae..5abe095901c8 100644
--- a/drivers/iio/imu/adis16480.c
+++ b/drivers/iio/imu/adis16480.c
@@ -372,12 +372,14 @@ static int adis16480_get_calibbias(struct iio_dev *indio_dev,
case IIO_MAGN:
case IIO_PRESSURE:
ret = adis_read_reg_16(&st->adis, reg, &val16);
- *bias = sign_extend32(val16, 15);
+ if (ret == 0)
+ *bias = sign_extend32(val16, 15);
break;
case IIO_ANGL_VEL:
case IIO_ACCEL:
ret = adis_read_reg_32(&st->adis, reg, &val32);
- *bias = sign_extend32(val32, 31);
+ if (ret == 0)
+ *bias = sign_extend32(val32, 31);
break;
default:
ret = -EINVAL;