Commit 9e123379 authored by Mattia Dongili's avatar Mattia Dongili Committed by Matthew Garrett

sony-laptop: use kstrtoul to parse sysfs values

This avoids surprises like echoing "enable" into a sysfs file and
finding that the feature was actually disabled.
Signed-off-by: default avatarMattia Dongili <malattia@linux.it>
Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
parent ebcef1b0
...@@ -944,7 +944,8 @@ static ssize_t sony_nc_sysfs_store(struct device *dev, ...@@ -944,7 +944,8 @@ static ssize_t sony_nc_sysfs_store(struct device *dev,
struct device_attribute *attr, struct device_attribute *attr,
const char *buffer, size_t count) const char *buffer, size_t count)
{ {
int value, ret = 0; unsigned long value = 0;
int ret = 0;
struct sony_nc_value *item = struct sony_nc_value *item =
container_of(attr, struct sony_nc_value, devattr); container_of(attr, struct sony_nc_value, devattr);
...@@ -954,7 +955,8 @@ static ssize_t sony_nc_sysfs_store(struct device *dev, ...@@ -954,7 +955,8 @@ static ssize_t sony_nc_sysfs_store(struct device *dev,
if (count > 31) if (count > 31)
return -EINVAL; return -EINVAL;
value = simple_strtoul(buffer, NULL, 10); if (kstrtoul(buffer, 10, &value))
return -EINVAL;
if (item->validate) if (item->validate)
value = item->validate(SNC_VALIDATE_IN, value); value = item->validate(SNC_VALIDATE_IN, value);
...@@ -962,8 +964,8 @@ static ssize_t sony_nc_sysfs_store(struct device *dev, ...@@ -962,8 +964,8 @@ static ssize_t sony_nc_sysfs_store(struct device *dev,
if (value < 0) if (value < 0)
return value; return value;
ret = sony_nc_int_call(sony_nc_acpi_handle, *item->acpiset, &value, ret = sony_nc_int_call(sony_nc_acpi_handle, *item->acpiset,
NULL); (int *)&value, NULL);
if (ret < 0) if (ret < 0)
return -EIO; return -EIO;
...@@ -1445,7 +1447,7 @@ static ssize_t sony_nc_kbd_backlight_mode_store(struct device *dev, ...@@ -1445,7 +1447,7 @@ static ssize_t sony_nc_kbd_backlight_mode_store(struct device *dev,
if (count > 31) if (count > 31)
return -EINVAL; return -EINVAL;
if (strict_strtoul(buffer, 10, &value)) if (kstrtoul(buffer, 10, &value))
return -EINVAL; return -EINVAL;
ret = __sony_nc_kbd_backlight_mode_set(value); ret = __sony_nc_kbd_backlight_mode_set(value);
...@@ -1489,7 +1491,7 @@ static ssize_t sony_nc_kbd_backlight_timeout_store(struct device *dev, ...@@ -1489,7 +1491,7 @@ static ssize_t sony_nc_kbd_backlight_timeout_store(struct device *dev,
if (count > 31) if (count > 31)
return -EINVAL; return -EINVAL;
if (strict_strtoul(buffer, 10, &value)) if (kstrtoul(buffer, 10, &value))
return -EINVAL; return -EINVAL;
ret = __sony_nc_kbd_backlight_timeout_set(value); ret = __sony_nc_kbd_backlight_timeout_set(value);
...@@ -2439,7 +2441,9 @@ static ssize_t sony_pic_wwanpower_store(struct device *dev, ...@@ -2439,7 +2441,9 @@ static ssize_t sony_pic_wwanpower_store(struct device *dev,
if (count > 31) if (count > 31)
return -EINVAL; return -EINVAL;
value = simple_strtoul(buffer, NULL, 10); if (kstrtoul(buffer, 10, &value))
return -EINVAL;
mutex_lock(&spic_dev.lock); mutex_lock(&spic_dev.lock);
__sony_pic_set_wwanpower(value); __sony_pic_set_wwanpower(value);
mutex_unlock(&spic_dev.lock); mutex_unlock(&spic_dev.lock);
...@@ -2476,7 +2480,9 @@ static ssize_t sony_pic_bluetoothpower_store(struct device *dev, ...@@ -2476,7 +2480,9 @@ static ssize_t sony_pic_bluetoothpower_store(struct device *dev,
if (count > 31) if (count > 31)
return -EINVAL; return -EINVAL;
value = simple_strtoul(buffer, NULL, 10); if (kstrtoul(buffer, 10, &value))
return -EINVAL;
mutex_lock(&spic_dev.lock); mutex_lock(&spic_dev.lock);
__sony_pic_set_bluetoothpower(value); __sony_pic_set_bluetoothpower(value);
mutex_unlock(&spic_dev.lock); mutex_unlock(&spic_dev.lock);
...@@ -2515,7 +2521,9 @@ static ssize_t sony_pic_fanspeed_store(struct device *dev, ...@@ -2515,7 +2521,9 @@ static ssize_t sony_pic_fanspeed_store(struct device *dev,
if (count > 31) if (count > 31)
return -EINVAL; return -EINVAL;
value = simple_strtoul(buffer, NULL, 10); if (kstrtoul(buffer, 10, &value))
return -EINVAL;
if (sony_pic_set_fanspeed(value)) if (sony_pic_set_fanspeed(value))
return -EIO; return -EIO;
......
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