mfd: replace strict_strtoul() with kstrtoul()
Subsystems (2)
PATCH v2 1/1 mfd: replace strict_strtoul() with kstrtoul()
The usage of strict_strtoul() is not preferred, because strict_strtoul() is obsolete. Thus, kstrtoul() should be used.
---
Changes since v1:
- Used return code from kstrtoul().
- Changed the type of 'user_reg' from 'unsigned long' to 'u8'.
- Replaced kstrtoul() with kstrtou8() to handle u8 variable.
drivers/mfd/aat2870-core.c | 5 +++-- drivers/mfd/ab3100-core.c | 16 ++++++---------- drivers/mfd/ab8500-debugfs.c | 2 +- 3 files changed, 10 insertions(+), 13 deletions(-)
drivers/mfd/aat2870-core.c +3 -2
@@ -312,8 +312,9 @@ static ssize_t aat2870_reg_write_file(struct file *file,while (*start ==' ' ) start++; -if (strict_strtoul (start,16 , &val)) -return -EINVAL ; + ret =kstrtoul (start,16 , &val); +if (ret) +return ret; ret = aat2870->write (aat2870, (u8 )addr, (u8 )val);if (ret)
drivers/mfd/ab3100-core.c +6 -10
@@ -491,7 +491,7 @@ static ssize_t ab3100_get_set_reg(struct file *file,char buf[32 ];ssize_t buf_size;int regp; -unsigned long user_reg; +u8 user_reg;int err;int i =0 ;
@@ -514,22 +514,20 @@ static ssize_t ab3100_get_set_reg(struct file *file,/* * Advance pointer to end of string then terminate * the register string. This is needed to satisfy -* the strict_strtoul() function. +* the kstrtou8() function. */ while ((i < buf_size) && (buf[i] !=' ' )) i++; buf[i] ='\0' ; - err =strict_strtoul (&buf[regp],16 , &user_reg); + err =kstrtou8 (&buf[regp],16 , &user_reg);if (err)return err; -if (user_reg >0xff ) -return -EINVAL ;/* Either we read or we write a register here */ if (!priv->mode) {/* Reading */ -u8 reg = (u8 ) user_reg; +u8 reg = user_reg;u8 regvalue;ab3100_get_register_interruptible (ab3100, reg, ®value);
@@ -540,7 +538,7 @@ static ssize_t ab3100_get_set_reg(struct file *file, }else {int valp;unsigned long user_value; -u8 reg = (u8 ) user_reg; +u8 reg = user_reg;u8 value;u8 regvalue;
@@ -557,11 +555,9 @@ static ssize_t ab3100_get_set_reg(struct file *file, i++; buf[i] ='\0' ; - err =strict_strtoul (&buf[valp],16 , &user_value); + err =kstrtoul (&buf[valp],16 , &user_value);if (err)return err; -if (user_reg >0xff ) -return -EINVAL ; value = (u8 ) user_value;ab3100_set_register_interruptible (ab3100, reg, value);
drivers/mfd/ab8500-debugfs.c +1 -1
@@ -2757,7 +2757,7 @@ static ssize_t show_irq(struct device *dev,unsigned int irq_index;int err; - err =strict_strtoul (attr->attr.name,0 , &name); + err =kstrtoul (attr->attr.name,0 , &name);if (err)return err;
Signature · 1 line
1.7.10.4
Quoted 3 lines
The usage of
strict_strtoul()is not preferred, becausestrict_strtoul()is obsolete. Thus,kstrtoul()should be used.
Andy,
Would you mind re-reviewing and providing the appropriate *-by please?
If you're happy I'll take the patch.
Signature · 4 lines
Lee Jones Linaro ST-Ericsson Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog
Quoted 7 lines · Lee Jones
Quoted 3 lines
The usage of
strict_strtoul()is not preferred, becausestrict_strtoul()is obsolete. Thus,kstrtoul()should be used.Andy,
Would you mind re-reviewing and providing the appropriate *-by please?
I do not mind. I just did it.
Quoted 1 line
If you're happy I'll take the patch.
Not fully. But there are few minor things which I believe Jingoo will easily fix soon.
--
With Best Regards,
Andy Shevchenko
Quoted 3 lines · Jingoo Han
The usage of
strict_strtoul()is not preferred, becausestrict_strtoul()is obsolete. Thus,kstrtoul()should be used.
Few comments below.
After addressing them take my
Quoted 16 lines
drivers/mfd/ab3100-core.c +2
-2@@ -514,22 +514,20 @@ static ssize_t ab3100_get_set_reg(struct file *file,/* * Advance pointer to end of string then terminate * the register string. This is needed to satisfy -* the strict_strtoul() function. +* the kstrtou8() function. */ while ((i < buf_size) && (buf[i] !=' ' )) i++; buf[i] ='\0' ; - err =strict_strtoul (&buf[regp],16 , &user_reg); + err =kstrtou8 (&buf[regp],16 , &user_reg);
drivers/mfd/ab3100-core.c static ssize_t ab3100_get_set_reg(struct file *file, · line 530
Quoted 10 lines
drivers/mfd/ab3100-core.c +1
-3if (err)return err; -if (user_reg >0xff ) -return -EINVAL ;/* Either we read or we write a register here */ if (!priv->mode) {/* Reading */ -u8 reg = (u8 ) user_reg; +u8 reg = user_reg;
Since the reg and user_reg have same type I think no harm to drop away this local reg variable.
drivers/mfd/ab3100-core.c static ssize_t ab3100_get_set_reg(struct file *file, · line 541
Quoted 9 lines
drivers/mfd/ab3100-core.c +1
-1u8 regvalue;ab3100_get_register_interruptible (ab3100, reg, ®value);@@ -540,7 +538,7 @@ static ssize_t ab3100_get_set_reg(struct file *file, }else {int valp;unsigned long user_value; -u8 reg = (u8 ) user_reg; +u8 reg = user_reg;
Same idea.
drivers/mfd/ab3100-core.c static ssize_t ab3100_get_set_reg(struct file *file, · line 558
Quoted 9 lines
drivers/mfd/ab3100-core.c +1
-1u8 value;u8 regvalue;@@ -557,11 +555,9 @@ static ssize_t ab3100_get_set_reg(struct file *file, i++; buf[i] ='\0' ; - err =strict_strtoul (&buf[valp],16 , &user_value); + err =kstrtoul (&buf[valp],16 , &user_value);
kstrtou8() as well (see below)
drivers/mfd/ab3100-core.c static ssize_t ab3100_get_set_reg(struct file *file, · line 527
Quoted 4 lines
drivers/mfd/ab3100-core.c +0
-2if (err)return err; -if (user_reg >0xff ) -return -EINVAL ;
It seems a bug, and further the u8 is used for value as well.
drivers/mfd/ab3100-core.c static ssize_t ab3100_get_set_reg(struct file *file, · line 562
Quoted 1 line
drivers/mfd/ab3100-core.c +0
-0value = (u8 ) user_value;
Thus, you can easily use u8 type for user_value and drop off val variable.
--
With Best Regards,
Andy Shevchenko