Patchwork [V2] rtc: rtc-pcf2123: replace strict_strtoul() with kstrtoul()

login
register
mail settings
Submitter Jingoo Han
Date June 3, 2013, 9:07 a.m.
Message ID <001501ce6039$c967d2b0$5c377810$@samsung.com>
Download mbox | patch
Permalink /patch/248205/
State New
Headers show

Comments

Jingoo Han - June 3, 2013, 9:07 a.m.
The usage of strict_strtoul() is not preferred, because
strict_strtoul() is obsolete. Thus, kstrtoul() should be
used.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
Changes since v1:
- Used return code from kstrtoul().

 drivers/rtc/rtc-pcf2123.c |   11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
Andy Shevchenko - June 3, 2013, 11:10 a.m.
On Mon, Jun 3, 2013 at 12:07 PM, Jingoo Han <jg1.han@samsung.com> wrote:
> The usage of strict_strtoul() is not preferred, because
> strict_strtoul() is obsolete. Thus, kstrtoul() should be
> used.

There is an issue, after fixing it take my
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

> --- a/drivers/rtc/rtc-pcf2123.c
> +++ b/drivers/rtc/rtc-pcf2123.c


> @@ -117,9 +118,9 @@ static ssize_t pcf2123_store(struct device *dev, struct device_attribute *attr,
>
>         r = container_of(attr, struct pcf2123_sysfs_reg, attr);
>
> -       if (strict_strtoul(r->name, 16, &reg)
> -               || strict_strtoul(buffer, 10, &val))
> -               return -EINVAL;
> +       ret = kstrtoul(r->name, 16, &reg) || kstrtoul(buffer, 10, &val);

This is not correct. Please, split to two sequential checks.

> +       if (ret)
> +               return ret;

--
With Best Regards,
Andy Shevchenko

Patch

diff --git a/drivers/rtc/rtc-pcf2123.c b/drivers/rtc/rtc-pcf2123.c
index b2a78a0..a887d95 100644
--- a/drivers/rtc/rtc-pcf2123.c
+++ b/drivers/rtc/rtc-pcf2123.c
@@ -94,8 +94,9 @@  static ssize_t pcf2123_show(struct device *dev, struct device_attribute *attr,
 
 	r = container_of(attr, struct pcf2123_sysfs_reg, attr);
 
-	if (strict_strtoul(r->name, 16, &reg))
-		return -EINVAL;
+	ret = kstrtoul(r->name, 16, &reg);
+	if (ret)
+		return ret;
 
 	txbuf[0] = PCF2123_READ | reg;
 	ret = spi_write_then_read(spi, txbuf, 1, rxbuf, 1);
@@ -117,9 +118,9 @@  static ssize_t pcf2123_store(struct device *dev, struct device_attribute *attr,
 
 	r = container_of(attr, struct pcf2123_sysfs_reg, attr);
 
-	if (strict_strtoul(r->name, 16, &reg)
-		|| strict_strtoul(buffer, 10, &val))
-		return -EINVAL;
+	ret = kstrtoul(r->name, 16, &reg) || kstrtoul(buffer, 10, &val);
+	if (ret)
+		return ret;
 
 	txbuf[0] = PCF2123_WRITE | reg;
 	txbuf[1] = val;