]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
tracing: Have event_enable_write() just return error on error
authorSteven Rostedt <rostedt@goodmis.org>
Thu, 19 Dec 2024 20:12:01 +0000 (15:12 -0500)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Thu, 26 Dec 2024 15:38:36 +0000 (10:38 -0500)
The event_enable_write() function is inconsistent in how it returns
errors. Sometimes it updates the ppos parameter and sometimes it doesn't.
Simplify the code to just return an error or the count if there isn't an
error.

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/20241219201345.025284170@goodmis.org
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
kernel/trace/trace_events.c

index 1545cc8b49d02f6f96120ef3f644efce7230f6d4..f4eff49faef64adb2883e76d4a8891d0e6a6cd41 100644 (file)
@@ -1549,18 +1549,18 @@ event_enable_write(struct file *filp, const char __user *ubuf, size_t cnt,
        switch (val) {
        case 0:
        case 1:
-               ret = -ENODEV;
                mutex_lock(&event_mutex);
                file = event_file_file(filp);
                if (likely(file)) {
                        ret = tracing_update_buffers(file->tr);
-                       if (ret < 0) {
-                               mutex_unlock(&event_mutex);
-                               return ret;
-                       }
-                       ret = ftrace_event_enable_disable(file, val);
+                       if (ret >= 0)
+                               ret = ftrace_event_enable_disable(file, val);
+               } else {
+                       ret = -ENODEV;
                }
                mutex_unlock(&event_mutex);
+               if (ret < 0)
+                       return ret;
                break;
 
        default:
@@ -1569,7 +1569,7 @@ event_enable_write(struct file *filp, const char __user *ubuf, size_t cnt,
 
        *ppos += cnt;
 
-       return ret ? ret : cnt;
+       return cnt;
 }
 
 static ssize_t