OSDN Git Service

platform/x86: intel_telemetry_debugfs: Respect error code of kstrtou32_from_user()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 18 Dec 2019 18:42:29 +0000 (20:42 +0200)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 10 Jan 2020 09:50:32 +0000 (11:50 +0200)
kstrtou32_from_user() may return different error codes on certain
circumstances. Respect all possible values.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/platform/x86/intel_telemetry_debugfs.c

index e84d3e9..8e3fb55 100644 (file)
@@ -686,13 +686,14 @@ static ssize_t telem_pss_trc_verb_write(struct file *file,
        u32 verbosity;
        int err;
 
-       if (kstrtou32_from_user(userbuf, count, 0, &verbosity))
-               return -EFAULT;
+       err = kstrtou32_from_user(userbuf, count, 0, &verbosity);
+       if (err)
+               return err;
 
        err = telemetry_set_trace_verbosity(TELEM_PSS, verbosity);
        if (err) {
                pr_err("Changing PSS Trace Verbosity Failed. Error %d\n", err);
-               count = err;
+               return err;
        }
 
        return count;
@@ -733,13 +734,14 @@ static ssize_t telem_ioss_trc_verb_write(struct file *file,
        u32 verbosity;
        int err;
 
-       if (kstrtou32_from_user(userbuf, count, 0, &verbosity))
-               return -EFAULT;
+       err = kstrtou32_from_user(userbuf, count, 0, &verbosity);
+       if (err)
+               return err;
 
        err = telemetry_set_trace_verbosity(TELEM_IOSS, verbosity);
        if (err) {
                pr_err("Changing IOSS Trace Verbosity Failed. Error %d\n", err);
-               count = err;
+               return err;
        }
 
        return count;