diff options
| -rw-r--r-- | drivers/hwmon/lm95241.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/hwmon/lm95241.c b/drivers/hwmon/lm95241.c index 464340f25496..4546d82f024a 100644 --- a/drivers/hwmon/lm95241.c +++ b/drivers/hwmon/lm95241.c | |||
| @@ -128,9 +128,12 @@ static ssize_t set_interval(struct device *dev, struct device_attribute *attr, | |||
| 128 | { | 128 | { |
| 129 | struct i2c_client *client = to_i2c_client(dev); | 129 | struct i2c_client *client = to_i2c_client(dev); |
| 130 | struct lm95241_data *data = i2c_get_clientdata(client); | 130 | struct lm95241_data *data = i2c_get_clientdata(client); |
| 131 | unsigned long val; | ||
| 131 | 132 | ||
| 132 | strict_strtol(buf, 10, &data->interval); | 133 | if (strict_strtoul(buf, 10, &val) < 0) |
| 133 | data->interval = data->interval * HZ / 1000; | 134 | return -EINVAL; |
| 135 | |||
| 136 | data->interval = val * HZ / 1000; | ||
| 134 | 137 | ||
| 135 | return count; | 138 | return count; |
| 136 | } | 139 | } |
| @@ -188,7 +191,9 @@ static ssize_t set_type##flag(struct device *dev, \ | |||
| 188 | struct lm95241_data *data = i2c_get_clientdata(client); \ | 191 | struct lm95241_data *data = i2c_get_clientdata(client); \ |
| 189 | \ | 192 | \ |
| 190 | long val; \ | 193 | long val; \ |
| 191 | strict_strtol(buf, 10, &val); \ | 194 | \ |
| 195 | if (strict_strtol(buf, 10, &val) < 0) \ | ||
| 196 | return -EINVAL; \ | ||
| 192 | \ | 197 | \ |
| 193 | if ((val == 1) || (val == 2)) { \ | 198 | if ((val == 1) || (val == 2)) { \ |
| 194 | \ | 199 | \ |
| @@ -227,7 +232,9 @@ static ssize_t set_min##flag(struct device *dev, \ | |||
| 227 | struct lm95241_data *data = i2c_get_clientdata(client); \ | 232 | struct lm95241_data *data = i2c_get_clientdata(client); \ |
| 228 | \ | 233 | \ |
| 229 | long val; \ | 234 | long val; \ |
| 230 | strict_strtol(buf, 10, &val); \ | 235 | \ |
| 236 | if (strict_strtol(buf, 10, &val) < 0) \ | ||
| 237 | return -EINVAL;\ | ||
| 231 | \ | 238 | \ |
| 232 | mutex_lock(&data->update_lock); \ | 239 | mutex_lock(&data->update_lock); \ |
| 233 | \ | 240 | \ |
| @@ -256,7 +263,9 @@ static ssize_t set_max##flag(struct device *dev, \ | |||
| 256 | struct lm95241_data *data = i2c_get_clientdata(client); \ | 263 | struct lm95241_data *data = i2c_get_clientdata(client); \ |
| 257 | \ | 264 | \ |
| 258 | long val; \ | 265 | long val; \ |
| 259 | strict_strtol(buf, 10, &val); \ | 266 | \ |
| 267 | if (strict_strtol(buf, 10, &val) < 0) \ | ||
| 268 | return -EINVAL; \ | ||
| 260 | \ | 269 | \ |
| 261 | mutex_lock(&data->update_lock); \ | 270 | mutex_lock(&data->update_lock); \ |
| 262 | \ | 271 | \ |
