driver core: replace strict_strto*() with kstrto*()
Subsystems (6)
PATCH 1/1 driver core: replace strict_strto*() with kstrto*()
The usage of strict_strto*() is not preferred, because strict_strto*() is obsolete. Thus, kstrto*() should be used.
--- drivers/base/core.c | 2 +- drivers/base/memory.c | 10 ++++++---- drivers/base/power/sysfs.c | 7 ++++++- drivers/base/regmap/regmap-debugfs.c | 5 +++-- 4 files changed, 16 insertions(+), 8 deletions(-)
drivers/base/core.c +1 -1
@@ -38,7 +38,7 @@ long sysfs_deprecated = 0;#endif static __init int sysfs_deprecated_setup (char *arg) { -return strict_strtol (arg,10 , &sysfs_deprecated); +return kstrtol (arg,10 , &sysfs_deprecated); }early_param ("sysfs.deprecated" , sysfs_deprecated_setup);#endif
drivers/base/memory.c +6 -4
@@ -469,8 +469,9 @@ store_soft_offline_page(struct device *dev,u64 pfn;if (!capable (CAP_SYS_ADMIN ))return -EPERM ; -if (strict_strtoull (buf,0 , &pfn) <0 ) -return -EINVAL ; + ret =kstrtoull (buf,0 , &pfn); +if (ret <0 ) +return ret; pfn >>=PAGE_SHIFT ;if (!pfn_valid (pfn))return -ENXIO ;
@@ -488,8 +489,9 @@ store_hard_offline_page(struct device *dev,u64 pfn;if (!capable (CAP_SYS_ADMIN ))return -EPERM ; -if (strict_strtoull (buf,0 , &pfn) <0 ) -return -EINVAL ; + ret =kstrtoull (buf,0 , &pfn); +if (ret <0 ) +return ret; pfn >>=PAGE_SHIFT ; ret =memory_failure (pfn,0 ,0 );return ret ? ret : count;
drivers/base/power/sysfs.c +6 -1
@@ -202,11 +202,16 @@ static ssize_t autosuspend_delay_ms_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t n) { long delay; +int ret;if (!dev->power.use_autosuspend)return -EIO ; -if (strict_strtol (buf,10 , &delay) !=0 || delay != (int ) delay) + ret =kstrtol (buf,10 , &delay); +if (ret) +return ret; + +if (delay != (int ) delay)return -EINVAL ;device_lock (dev);
drivers/base/regmap/regmap-debugfs.c +3 -2
@@ -281,8 +281,9 @@ static ssize_t regmap_map_write_file(struct file *file, reg =simple_strtoul (start, &start,16 );while (*start ==' ' ) start++; -if (strict_strtoul (start,16 , &value)) -return -EINVAL ; + ret =kstrtoul (start,16 , &value); +if (ret) +return ret;/* Userspace has been fiddling around behind the kernel's back */ add_taint (TAINT_USER ,LOCKDEP_STILL_OK );
Signature · 1 line
1.7.10.4
Quoted 31 lines · Jingoo Han
The usage of strict_strto*() is not preferred, because strict_strto*() is obsolete. Thus, kstrto*() should be used.
Signed-off-by Jingoo Han <[email protected]>--- drivers/base/core.c | 2 +- drivers/base/memory.c | 10 ++++++---- drivers/base/power/sysfs.c | 7 ++++++- drivers/base/regmap/regmap-debugfs.c | 5 +++-- 4 files changed, 16 insertions(+), 8 deletions(-)drivers/base/core.c +1
-1@@ -38,7 +38,7 @@ long sysfs_deprecated = 0;#endif static __init int sysfs_deprecated_setup (char *arg) { -return strict_strtol (arg,10 , &sysfs_deprecated); +return kstrtol (arg,10 , &sysfs_deprecated); }early_param ("sysfs.deprecated" , sysfs_deprecated_setup);#endif drivers/base/memory.c +0
-0
drivers/base/memory.c store_soft_offline_page(struct device *dev, · line 474
Quoted 8 lines
drivers/base/memory.c +3
-2@@ -469,8 +469,9 @@ store_soft_offline_page(struct device *dev,u64 pfn;if (!capable (CAP_SYS_ADMIN ))return -EPERM ; -if (strict_strtoull (buf,0 , &pfn) <0 ) -return -EINVAL ; + ret =kstrtoull (buf,0 , &pfn); +if (ret <0 ) +return ret;
In order to not risk any user space breakage,
I will just mechanically replaces strict_strto*() with kstrto*().
drivers/base/memory.c store_hard_offline_page(struct device *dev, · line 494
Quoted 12 lines
drivers/base/memory.c +3
-2pfn >>=PAGE_SHIFT ;if (!pfn_valid (pfn))return -ENXIO ;@@ -488,8 +489,9 @@ store_hard_offline_page(struct device *dev,u64 pfn;if (!capable (CAP_SYS_ADMIN ))return -EPERM ; -if (strict_strtoull (buf,0 , &pfn) <0 ) -return -EINVAL ; + ret =kstrtoull (buf,0 , &pfn); +if (ret <0 ) +return ret;
Ditto.
Quoted 12 lines
drivers/base/memory.c +0
-0pfn >>=PAGE_SHIFT ; ret =memory_failure (pfn,0 ,0 );return ret ? ret : count;drivers/base/power/sysfs.c +1
-0@@ -202,11 +202,16 @@ static ssize_t autosuspend_delay_ms_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t n) { long delay; +int ret;
drivers/base/power/sysfs.c static ssize_t autosuspend_delay_ms_store(struct device *dev, · line 214
Quoted 10 lines
drivers/base/power/sysfs.c +5
-1if (!dev->power.use_autosuspend)return -EIO ; -if (strict_strtol (buf,10 , &delay) !=0 || delay != (int ) delay) + ret =kstrtol (buf,10 , &delay); +if (ret) +return ret; + +if (delay != (int ) delay)
Ditto.
Quoted 8 lines
drivers/base/power/sysfs.c +0
-0return -EINVAL ;device_lock (dev);drivers/base/regmap/regmap-debugfs.c +0
-0
drivers/base/regmap/regmap-debugfs.c static ssize_t regmap_map_write_file(struct file *file, · line 286
Quoted 8 lines
drivers/base/regmap/regmap-debugfs.c +3
-2@@ -281,8 +281,9 @@ static ssize_t regmap_map_write_file(struct file *file, reg =simple_strtoul (start, &start,16 );while (*start ==' ' ) start++; -if (strict_strtoul (start,16 , &value)) -return -EINVAL ; + ret =kstrtoul (start,16 , &value); +if (ret) +return ret;
Ditto.
I will send v2 patch, soon.
Thank you.
Best regards,
Jingoo Han
Quoted 5 lines
drivers/base/regmap/regmap-debugfs.c +0
-1/* Userspace has been fiddling around behind the kernel's back */ add_taint (TAINT_USER ,LOCKDEP_STILL_OK ); --1.7.10.4