Commit 88f6da77 authored by Srinivas Pandruvada's avatar Srinivas Pandruvada Committed by Jonathan Cameron

iio: accel: kxcjk1013 Fix missing unlock errors

Fix unlock at two places. One when i2c error occurs and other
when trigger set state when raw read is in progress.

kbuild test robot errors:
>> >> drivers/iio/accel/kxcjk-1013.c:531:3-9: preceding lock on line 524
>> >> drivers/iio/accel/kxcjk-1013.c:376:4-10: preceding lock on line 368
Signed-off-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Reported-by: default avatarFengguang Wu <fengguang.wu@intel.com>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent d14c0f10
...@@ -372,8 +372,10 @@ static int kxcjk1013_read_raw(struct iio_dev *indio_dev, ...@@ -372,8 +372,10 @@ static int kxcjk1013_read_raw(struct iio_dev *indio_dev,
int sleep_val; int sleep_val;
ret = kxcjk1013_set_mode(data, OPERATION); ret = kxcjk1013_set_mode(data, OPERATION);
if (ret < 0) if (ret < 0) {
mutex_unlock(&data->mutex);
return ret; return ret;
}
++data->power_state; ++data->power_state;
sleep_val = kxcjk1013_get_startup_times(data); sleep_val = kxcjk1013_get_startup_times(data);
if (sleep_val < 20000) if (sleep_val < 20000)
...@@ -527,8 +529,10 @@ static int kxcjk1013_data_rdy_trigger_set_state(struct iio_trigger *trig, ...@@ -527,8 +529,10 @@ static int kxcjk1013_data_rdy_trigger_set_state(struct iio_trigger *trig,
kxcjk1013_set_mode(data, OPERATION); kxcjk1013_set_mode(data, OPERATION);
++data->power_state; ++data->power_state;
} else { } else {
if (--data->power_state) if (--data->power_state) {
mutex_unlock(&data->mutex);
return 0; return 0;
}
kxcjk1013_chip_setup_interrupt(data, false); kxcjk1013_chip_setup_interrupt(data, false);
kxcjk1013_set_mode(data, STANDBY); kxcjk1013_set_mode(data, STANDBY);
} }
......
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