[PATCH v3] UBIFS: replace simple_strtoul() with kstrtoint()
Zhang Zhen
zhenzhang.zhang at huawei.com
Tue May 20 20:00:22 PDT 2014
use the newer and more pleasant kstrtoint() to replace simple_strtoul(),
because simple_strtoul() is marked for obsoletion.
Signed-off-by: Zhang Zhen <zhenzhang.zhang at huawei.com>
Signed-off-by: hujianyang <hujianyang at huawei.com>
---
drivers/mtd/ubi/build.c | 9 +++++----
fs/ubifs/super.c | 14 ++++++++++----
2 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
index 6e30a3c..489f5ef 100644
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
@@ -1190,11 +1190,12 @@ static struct mtd_info * __init open_mtd_by_chdev(const char *mtd_dev)
static struct mtd_info * __init open_mtd_device(const char *mtd_dev)
{
struct mtd_info *mtd;
- int mtd_num;
- char *endp;
+ int mtd_num, ret;
- mtd_num = simple_strtoul(mtd_dev, &endp, 0);
- if (*endp != '\0' || mtd_dev == endp) {
+ ret = kstrtoint(mtd_dev, 0, &mtd_num);
+ if (ret)
+ return ERR_PTR(-EINVAL);
+ if (*mtd_dev != '\0') {
/*
* This does not look like an ASCII integer, probably this is
* MTD device name.
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index a81c7b5..4831b60 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -1903,8 +1903,8 @@ const struct super_operations ubifs_super_operations = {
static struct ubi_volume_desc *open_ubi(const char *name, int mode)
{
struct ubi_volume_desc *ubi;
- int dev, vol;
- char *endptr;
+ int dev, vol, ret;
+ const char *endptr;
/* First, try to open using the device node path method */
ubi = ubi_open_volume_path(name, mode);
@@ -1922,7 +1922,10 @@ static struct ubi_volume_desc *open_ubi(const char *name, int mode)
if (!isdigit(name[3]))
return ERR_PTR(-EINVAL);
- dev = simple_strtoul(name + 3, &endptr, 0);
+ endptr = name + 3;
+ ret = kstrtoint(endptr, 0, &dev);
+ if (ret)
+ return ERR_PTR(-EINVAL);
/* ubiY method */
if (*endptr == '\0')
@@ -1930,7 +1933,10 @@ static struct ubi_volume_desc *open_ubi(const char *name, int mode)
/* ubiX_Y method */
if (*endptr == '_' && isdigit(endptr[1])) {
- vol = simple_strtoul(endptr + 1, &endptr, 0);
+ endptr = endptr + 1;
+ ret = kstrtoint(endptr, 0, &vol);
+ if (ret)
+ return ERR_PTR(-EINVAL);
if (*endptr != '\0')
return ERR_PTR(-EINVAL);
return ubi_open_volume(dev, vol, mode);
--
1.8.1.2
.
More information about the linux-mtd
mailing list