leds: trigger: gpio: Convert to use kstrtox()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 3 Nov 2023 19:53:08 +0000 (21:53 +0200)
committerLee Jones <lee@kernel.org>
Wed, 13 Dec 2023 11:28:37 +0000 (11:28 +0000)
sscanf() is a heavy one and moreover requires additional boundary checks.
Convert driver to use kstrtou8() in gpio_trig_inverted_store().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20231103195310.948327-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/leds/trigger/ledtrig-gpio.c

index d91ae7f..8a30f92 100644 (file)
@@ -53,14 +53,12 @@ static ssize_t gpio_trig_brightness_store(struct device *dev,
                struct device_attribute *attr, const char *buf, size_t n)
 {
        struct gpio_trig_data *gpio_data = led_trigger_get_drvdata(dev);
-       unsigned desired_brightness;
+       u8 desired_brightness;
        int ret;
 
-       ret = sscanf(buf, "%u", &desired_brightness);
-       if (ret < 1 || desired_brightness > 255) {
-               dev_err(dev, "invalid value\n");
-               return -EINVAL;
-       }
+       ret = kstrtou8(buf, 10, &desired_brightness);
+       if (ret)
+               return ret;
 
        gpio_data->desired_brightness = desired_brightness;