mm: cleanup kstrto*() usage
authorAlexey Dobriyan <adobriyan@gmail.com>
Tue, 15 Dec 2020 03:15:03 +0000 (19:15 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 15 Dec 2020 20:13:47 +0000 (12:13 -0800)
Range checks can folded into proper conversion function.  kstrto*() exist
for all arithmetic types.

Link: https://lkml.kernel.org/r/20201122123759.GC92364@localhost.localdomain
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/khugepaged.c
mm/ksm.c

index ec92ae7..ad316d2 100644 (file)
@@ -133,11 +133,11 @@ static ssize_t scan_sleep_millisecs_store(struct kobject *kobj,
                                          struct kobj_attribute *attr,
                                          const char *buf, size_t count)
 {
-       unsigned long msecs;
+       unsigned int msecs;
        int err;
 
-       err = kstrtoul(buf, 10, &msecs);
-       if (err || msecs > UINT_MAX)
+       err = kstrtouint(buf, 10, &msecs);
+       if (err)
                return -EINVAL;
 
        khugepaged_scan_sleep_millisecs = msecs;
@@ -161,11 +161,11 @@ static ssize_t alloc_sleep_millisecs_store(struct kobject *kobj,
                                           struct kobj_attribute *attr,
                                           const char *buf, size_t count)
 {
-       unsigned long msecs;
+       unsigned int msecs;
        int err;
 
-       err = kstrtoul(buf, 10, &msecs);
-       if (err || msecs > UINT_MAX)
+       err = kstrtouint(buf, 10, &msecs);
+       if (err)
                return -EINVAL;
 
        khugepaged_alloc_sleep_millisecs = msecs;
@@ -188,11 +188,11 @@ static ssize_t pages_to_scan_store(struct kobject *kobj,
                                   struct kobj_attribute *attr,
                                   const char *buf, size_t count)
 {
+       unsigned int pages;
        int err;
-       unsigned long pages;
 
-       err = kstrtoul(buf, 10, &pages);
-       if (err || !pages || pages > UINT_MAX)
+       err = kstrtouint(buf, 10, &pages);
+       if (err || !pages)
                return -EINVAL;
 
        khugepaged_pages_to_scan = pages;
index 4f950c7..9694ee2 100644 (file)
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -2840,11 +2840,11 @@ static ssize_t sleep_millisecs_store(struct kobject *kobj,
                                     struct kobj_attribute *attr,
                                     const char *buf, size_t count)
 {
-       unsigned long msecs;
+       unsigned int msecs;
        int err;
 
-       err = kstrtoul(buf, 10, &msecs);
-       if (err || msecs > UINT_MAX)
+       err = kstrtouint(buf, 10, &msecs);
+       if (err)
                return -EINVAL;
 
        ksm_thread_sleep_millisecs = msecs;
@@ -2864,11 +2864,11 @@ static ssize_t pages_to_scan_store(struct kobject *kobj,
                                   struct kobj_attribute *attr,
                                   const char *buf, size_t count)
 {
+       unsigned int nr_pages;
        int err;
-       unsigned long nr_pages;
 
-       err = kstrtoul(buf, 10, &nr_pages);
-       if (err || nr_pages > UINT_MAX)
+       err = kstrtouint(buf, 10, &nr_pages);
+       if (err)
                return -EINVAL;
 
        ksm_thread_pages_to_scan = nr_pages;
@@ -2886,11 +2886,11 @@ static ssize_t run_show(struct kobject *kobj, struct kobj_attribute *attr,
 static ssize_t run_store(struct kobject *kobj, struct kobj_attribute *attr,
                         const char *buf, size_t count)
 {
+       unsigned int flags;
        int err;
-       unsigned long flags;
 
-       err = kstrtoul(buf, 10, &flags);
-       if (err || flags > UINT_MAX)
+       err = kstrtouint(buf, 10, &flags);
+       if (err)
                return -EINVAL;
        if (flags > KSM_RUN_UNMERGE)
                return -EINVAL;