Commit 115c215a authored by Dan Carpenter's avatar Dan Carpenter Committed by Jonathan Cameron
Browse files

iio: imu: st_lsm6dsx: unlock on error in st_lsm6dsx_shub_write_raw()



We need to release a lock if st_lsm6dsx_check_odr() fails, we can't
return directly.

Fixes: 76551a3c ("iio: imu: st_lsm6dsx: specify slave odr in slv_odr")
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 98bcead0
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -544,8 +544,10 @@ st_lsm6dsx_shub_write_raw(struct iio_dev *iio_dev,

			ref_sensor = iio_priv(hw->iio_devs[ST_LSM6DSX_ID_ACC]);
			odr = st_lsm6dsx_check_odr(ref_sensor, val, &odr_val);
			if (odr < 0)
				return odr;
			if (odr < 0) {
				err = odr;
				goto release;
			}

			sensor->ext_info.slv_odr = val;
			sensor->odr = odr;
@@ -557,6 +559,7 @@ st_lsm6dsx_shub_write_raw(struct iio_dev *iio_dev,
		break;
	}

release:
	iio_device_release_direct_mode(iio_dev);

	return err;