err = kstrtoul(buf, 0, &min);
        if (err)
-               return -EINVAL;
+               return err;
 
        range->min = min;
        return count;
 
        err = kstrtoul(buf, 0, &max);
        if (err)
-               return -EINVAL;
+               return err;
 
        range->max = max;
        return count;
                        struct damon_sysfs_watermarks, kobj);
        int err = kstrtoul(buf, 0, &watermarks->interval_us);
 
-       if (err)
-               return -EINVAL;
-       return count;
+       return err ? err : count;
 }
 
 static ssize_t high_show(struct kobject *kobj,
                        struct damon_sysfs_watermarks, kobj);
        int err = kstrtoul(buf, 0, &watermarks->high);
 
-       if (err)
-               return -EINVAL;
-       return count;
+       return err ? err : count;
 }
 
 static ssize_t mid_show(struct kobject *kobj,
                        struct damon_sysfs_watermarks, kobj);
        int err = kstrtoul(buf, 0, &watermarks->mid);
 
-       if (err)
-               return -EINVAL;
-       return count;
+       return err ? err : count;
 }
 
 static ssize_t low_show(struct kobject *kobj,
                        struct damon_sysfs_watermarks, kobj);
        int err = kstrtoul(buf, 0, &watermarks->low);
 
-       if (err)
-               return -EINVAL;
-       return count;
+       return err ? err : count;
 }
 
 static void damon_sysfs_watermarks_release(struct kobject *kobj)
                        struct damon_sysfs_weights, kobj);
        int err = kstrtouint(buf, 0, &weights->sz);
 
-       if (err)
-               return -EINVAL;
-       return count;
+       return err ? err : count;
 }
 
 static ssize_t nr_accesses_permil_show(struct kobject *kobj,
                        struct damon_sysfs_weights, kobj);
        int err = kstrtouint(buf, 0, &weights->nr_accesses);
 
-       if (err)
-               return -EINVAL;
-       return count;
+       return err ? err : count;
 }
 
 static ssize_t age_permil_show(struct kobject *kobj,
                        struct damon_sysfs_weights, kobj);
        int err = kstrtouint(buf, 0, &weights->age);
 
-       if (err)
-               return -EINVAL;
-       return count;
+       return err ? err : count;
 }
 
 static void damon_sysfs_weights_release(struct kobject *kobj)
                        struct damon_sysfs_region, kobj);
        int err = kstrtoul(buf, 0, ®ion->start);
 
-       if (err)
-               return -EINVAL;
-       return count;
+       return err ? err : count;
 }
 
 static ssize_t end_show(struct kobject *kobj, struct kobj_attribute *attr,
                        struct damon_sysfs_region, kobj);
        int err = kstrtoul(buf, 0, ®ion->end);
 
-       if (err)
-               return -EINVAL;
-       return count;
+       return err ? err : count;
 }
 
 static void damon_sysfs_region_release(struct kobject *kobj)
        int err = kstrtoul(buf, 0, &us);
 
        if (err)
-               return -EINVAL;
+               return err;
 
        intervals->sample_us = us;
        return count;
        int err = kstrtoul(buf, 0, &us);
 
        if (err)
-               return -EINVAL;
+               return err;
 
        intervals->aggr_us = us;
        return count;
        int err = kstrtoul(buf, 0, &us);
 
        if (err)
-               return -EINVAL;
+               return err;
 
        intervals->update_us = us;
        return count;