]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
misc: eeprom_93xx46: Convert to use kstrtox()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 8 May 2024 18:47:00 +0000 (21:47 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 4 Jun 2024 15:47:08 +0000 (17:47 +0200)
sscanf() is a heavy one and moreover requires additional boundary checks.
Convert driver to use kstrtobool() in eeprom_93xx46_store_erase().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20240508184905.2102633-8-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/eeprom/eeprom_93xx46.c

index 3f885bac72c241f6a742e9022e4347268da0a8fa..18a3b534ea7341c5c873ade3d67bd60c39bd13af 100644 (file)
@@ -10,7 +10,7 @@
 #include <linux/delay.h>
 #include <linux/device.h>
 #include <linux/gpio/consumer.h>
-#include <linux/kernel.h>
+#include <linux/kstrtox.h>
 #include <linux/log2.h>
 #include <linux/mod_devicetable.h>
 #include <linux/module.h>
@@ -366,9 +366,13 @@ static ssize_t eeprom_93xx46_store_erase(struct device *dev,
                                         const char *buf, size_t count)
 {
        struct eeprom_93xx46_dev *edev = dev_get_drvdata(dev);
-       int erase = 0, ret;
+       bool erase;
+       int ret;
+
+       ret = kstrtobool(buf, &erase);
+       if (ret)
+               return ret;
 
-       sscanf(buf, "%d", &erase);
        if (erase) {
                ret = eeprom_93xx46_ew(edev, 1);
                if (ret)