diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2024-05-08 21:47:00 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-06-04 18:47:08 +0300 |
commit | 761b4cf31741b2d0beda5de4c36253b553939263 (patch) | |
tree | 05d5553b11785afaa9d35f108c5c9a8e8bb76724 | |
parent | 163898508f96efaafaa87000c7c4bbf711a34bd9 (diff) | |
download | linux-761b4cf31741b2d0beda5de4c36253b553939263.tar.xz |
misc: eeprom_93xx46: Convert to use kstrtox()
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>
-rw-r--r-- | drivers/misc/eeprom/eeprom_93xx46.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/misc/eeprom/eeprom_93xx46.c b/drivers/misc/eeprom/eeprom_93xx46.c index 3f885bac72c2..18a3b534ea73 100644 --- a/drivers/misc/eeprom/eeprom_93xx46.c +++ b/drivers/misc/eeprom/eeprom_93xx46.c @@ -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) |