Merge branch 'for-3.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj...
[firefly-linux-kernel-4.4.55.git] / drivers / leds / led-class.c
index 5bff8439dc68a7e8c6424f0cbed3746cd9820efb..8ee92c81aec2c1577c3fb1cfd173d8835c2c7725 100644 (file)
@@ -44,23 +44,18 @@ static ssize_t led_brightness_store(struct device *dev,
                struct device_attribute *attr, const char *buf, size_t size)
 {
        struct led_classdev *led_cdev = dev_get_drvdata(dev);
+       unsigned long state;
        ssize_t ret = -EINVAL;
-       char *after;
-       unsigned long state = simple_strtoul(buf, &after, 10);
-       size_t count = after - buf;
 
-       if (isspace(*after))
-               count++;
+       ret = kstrtoul(buf, 10, &state);
+       if (ret)
+               return ret;
 
-       if (count == size) {
-               ret = count;
+       if (state == LED_OFF)
+               led_trigger_remove(led_cdev);
+       led_set_brightness(led_cdev, state);
 
-               if (state == LED_OFF)
-                       led_trigger_remove(led_cdev);
-               led_set_brightness(led_cdev, state);
-       }
-
-       return ret;
+       return size;
 }
 
 static ssize_t led_max_brightness_show(struct device *dev,