Commit 9b742763 authored by Alexandru Ardelean's avatar Alexandru Ardelean Committed by Jonathan Cameron

iio: imu: adis16480: assign bias value only if operation succeeded

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: 2f3abe6c ("iio:imu: Add support for the ADIS16480 and similar IMUs")
Signed-off-by: default avatarAlexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 52c4c732
...@@ -451,12 +451,14 @@ static int adis16480_get_calibbias(struct iio_dev *indio_dev, ...@@ -451,12 +451,14 @@ static int adis16480_get_calibbias(struct iio_dev *indio_dev,
case IIO_MAGN: case IIO_MAGN:
case IIO_PRESSURE: case IIO_PRESSURE:
ret = adis_read_reg_16(&st->adis, reg, &val16); ret = adis_read_reg_16(&st->adis, reg, &val16);
*bias = sign_extend32(val16, 15); if (ret == 0)
*bias = sign_extend32(val16, 15);
break; break;
case IIO_ANGL_VEL: case IIO_ANGL_VEL:
case IIO_ACCEL: case IIO_ACCEL:
ret = adis_read_reg_32(&st->adis, reg, &val32); ret = adis_read_reg_32(&st->adis, reg, &val32);
*bias = sign_extend32(val32, 31); if (ret == 0)
*bias = sign_extend32(val32, 31);
break; break;
default: default:
ret = -EINVAL; ret = -EINVAL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment