diff options
author | Hartmut Knaack <knaack.h@gmx.de> | 2015-08-02 16:43:49 -0400 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2015-08-08 12:30:42 -0400 |
commit | 11218226184b6b2be5cde4bf16f647dda225d4f3 (patch) | |
tree | ddef13faec9a0abe126e70aa013327e5f7c85fe4 /drivers/iio | |
parent | b9fddcdb44c2e274193b119dd6c3af3a9324640a (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.c | 8 |
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, |