From: Marek Belisko Date: Fri, 11 Feb 2011 01:49:24 +0000 (-0800) Subject: staging: olpc_dcon: Remove _strtoul() function. X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=31a3da4146c120e87b8d42d033760fe49704a233;p=mv-sheeva.git staging: olpc_dcon: Remove _strtoul() function. olpc_dcon driver use self invented _strtoul function which make similar check like strict_strtoul just extend for space checking at last string place. Normally access to sys file looks echo 1024 > /sys/... so space could be considered as error character and we could simplify code using just strict_strtoul function instead self invented. Signed-off-by: Marek Belisko Signed-off-by: Andres Salomon Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/olpc_dcon/olpc_dcon.c b/drivers/staging/olpc_dcon/olpc_dcon.c index d3c280052d1..52b7b306a57 100644 --- a/drivers/staging/olpc_dcon/olpc_dcon.c +++ b/drivers/staging/olpc_dcon/olpc_dcon.c @@ -549,48 +549,33 @@ static ssize_t dcon_resumeline_show(struct device *dev, return sprintf(buf, "%d\n", resumeline); } -static int _strtoul(const char *buf, int len, unsigned int *val) -{ - - char *endp; - unsigned int output = simple_strtoul(buf, &endp, 0); - int size = endp - buf; - - if (*endp && isspace(*endp)) - size++; - - if (size != len) - return -EINVAL; - - *val = output; - return 0; -} - static ssize_t dcon_mono_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { - int enable_mono; - int rc = -EINVAL; + unsigned long enable_mono; + int rc; - if (_strtoul(buf, count, &enable_mono)) - return -EINVAL; + rc = strict_strtoul(buf, 10, &enable_mono); + if (rc) + return rc; dcon_set_mono_mode(dev_get_drvdata(dev), enable_mono ? true : false); - rc = count; - return rc; + return count; } static ssize_t dcon_freeze_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct dcon_priv *dcon = dev_get_drvdata(dev); - int output; + unsigned long output; + int ret; - if (_strtoul(buf, count, &output)) - return -EINVAL; + ret = strict_strtoul(buf, 10, &output); + if (ret) + return ret; - printk(KERN_INFO "dcon_freeze_store: %d\n", output); + printk(KERN_INFO "dcon_freeze_store: %lu\n", output); switch (output) { case 0: @@ -612,26 +597,28 @@ static ssize_t dcon_freeze_store(struct device *dev, static ssize_t dcon_resumeline_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { - int rl; - int rc = -EINVAL; + unsigned long rl; + int rc; - if (_strtoul(buf, count, &rl)) + rc = strict_strtoul(buf, 10, &rl); + if (rc) return rc; resumeline = rl; dcon_write(dev_get_drvdata(dev), DCON_REG_SCAN_INT, resumeline); - rc = count; - return rc; + return count; } static ssize_t dcon_sleep_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { - int output; + unsigned long output; + int ret; - if (_strtoul(buf, count, &output)) - return -EINVAL; + ret = strict_strtoul(buf, 10, &output); + if (ret) + return ret; dcon_sleep(dev_get_drvdata(dev), output ? true : false); return count;