diff options
author | Irina Tirdea <irina.tirdea@intel.com> | 2015-04-13 11:40:49 -0400 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2015-04-26 14:43:08 -0400 |
commit | 1d93353da536d3403ac291dc96070f434f6cf285 (patch) | |
tree | 356164fad3cc6ff85d1d47332efabcd220570539 /drivers/iio/accel | |
parent | ae2ec9597c9329fdf503af264966bc7e421daa58 (diff) |
iio: accel: mma9553: check input value for activity period
When setting the activity period, the value introduced by
the user in sysfs is not checked for validity.
Add a boundary check so that only allowed values are
reported as successfully written to device.
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
Reported-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers/iio/accel')
-rw-r--r-- | drivers/iio/accel/mma9553.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/iio/accel/mma9553.c b/drivers/iio/accel/mma9553.c index 1a256055a6f7..365a109aaaef 100644 --- a/drivers/iio/accel/mma9553.c +++ b/drivers/iio/accel/mma9553.c | |||
@@ -54,6 +54,7 @@ | |||
54 | #define MMA9553_MASK_CONF_STEPCOALESCE GENMASK(7, 0) | 54 | #define MMA9553_MASK_CONF_STEPCOALESCE GENMASK(7, 0) |
55 | 55 | ||
56 | #define MMA9553_REG_CONF_ACTTHD 0x0E | 56 | #define MMA9553_REG_CONF_ACTTHD 0x0E |
57 | #define MMA9553_MAX_ACTTHD GENMASK(15, 0) | ||
57 | 58 | ||
58 | /* Pedometer status registers (R-only) */ | 59 | /* Pedometer status registers (R-only) */ |
59 | #define MMA9553_REG_STATUS 0x00 | 60 | #define MMA9553_REG_STATUS 0x00 |
@@ -869,6 +870,9 @@ static int mma9553_write_event_value(struct iio_dev *indio_dev, | |||
869 | case IIO_EV_INFO_PERIOD: | 870 | case IIO_EV_INFO_PERIOD: |
870 | switch (chan->type) { | 871 | switch (chan->type) { |
871 | case IIO_ACTIVITY: | 872 | case IIO_ACTIVITY: |
873 | if (val < 0 || val > MMA9553_ACTIVITY_THD_TO_SEC( | ||
874 | MMA9553_MAX_ACTTHD)) | ||
875 | return -EINVAL; | ||
872 | mutex_lock(&data->mutex); | 876 | mutex_lock(&data->mutex); |
873 | ret = mma9553_set_config(data, MMA9553_REG_CONF_ACTTHD, | 877 | ret = mma9553_set_config(data, MMA9553_REG_CONF_ACTTHD, |
874 | &data->conf.actthd, | 878 | &data->conf.actthd, |