aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/iio
diff options
context:
space:
mode:
authorHartmut Knaack <knaack.h@gmx.de>2015-08-02 16:43:49 -0400
committerJonathan Cameron <jic23@kernel.org>2015-08-08 12:30:42 -0400
commit11218226184b6b2be5cde4bf16f647dda225d4f3 (patch)
treeddef13faec9a0abe126e70aa013327e5f7c85fe4 /drivers/iio
parentb9fddcdb44c2e274193b119dd6c3af3a9324640a (diff)
iio:accel:mma8452: check values to be written
Check values to be written to the device for valid lower and upper bounds. Signed-off-by: Hartmut Knaack <knaack.h@gmx.de> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers/iio')
-rw-r--r--drivers/iio/accel/mma8452.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c
index 9607f830a13b..42640b1df870 100644
--- a/drivers/iio/accel/mma8452.c
+++ b/drivers/iio/accel/mma8452.c
@@ -471,15 +471,17 @@ static int mma8452_write_thresh(struct iio_dev *indio_dev,
471 471
472 switch (info) { 472 switch (info) {
473 case IIO_EV_INFO_VALUE: 473 case IIO_EV_INFO_VALUE:
474 return mma8452_change_config(data, MMA8452_TRANSIENT_THS, 474 if (val < 0 || val > MMA8452_TRANSIENT_THS_MASK)
475 val & MMA8452_TRANSIENT_THS_MASK); 475 return -EINVAL;
476
477 return mma8452_change_config(data, MMA8452_TRANSIENT_THS, val);
476 478
477 case IIO_EV_INFO_PERIOD: 479 case IIO_EV_INFO_PERIOD:
478 steps = (val * USEC_PER_SEC + val2) / 480 steps = (val * USEC_PER_SEC + val2) /
479 mma8452_transient_time_step_us[ 481 mma8452_transient_time_step_us[
480 mma8452_get_odr_index(data)]; 482 mma8452_get_odr_index(data)];
481 483
482 if (steps > 0xff) 484 if (steps < 0 || steps > 0xff)
483 return -EINVAL; 485 return -EINVAL;
484 486
485 return mma8452_change_config(data, MMA8452_TRANSIENT_COUNT, 487 return mma8452_change_config(data, MMA8452_TRANSIENT_COUNT,