Message ID | 20250213134132.7e4505d7@gandalf.local.home (mailing list archive) |
---|---|
State | Accepted |
Commit | 60b8f711143de7cd9c0f55be0fe7eb94b19eb5c7 |
Headers | show |
Series | tracing: Have the error of __tracing_resize_ring_buffer() passed to user | expand |
On Thu, 13 Feb 2025 13:41:32 -0500 Steven Rostedt <rostedt@goodmis.org> wrote: > From: Steven Rostedt <rostedt@goodmis.org> > > Currently if __tracing_resize_ring_buffer() returns an error, the > tracing_resize_ringbuffer() returns -ENOMEM. But it may not be a memory > issue that caused the function to fail. If the ring buffer is memory > mapped, then the resizing of the ring buffer will be disabled. But if the > user tries to resize the buffer, it will get an -ENOMEM returned, which is > confusing because there is plenty of memory. The actual error returned was > -EBUSY, which would make much more sense to the user. > Looks good to me. Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Thanks, > Cc: stable@vger.kernel.org > Fixes: 117c39200d9d7 ("ring-buffer: Introducing ring-buffer mapping functions") > Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org> > --- > kernel/trace/trace.c | 8 +------- > 1 file changed, 1 insertion(+), 7 deletions(-) > > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c > index 1496a5ac33ae..25ff37aab00f 100644 > --- a/kernel/trace/trace.c > +++ b/kernel/trace/trace.c > @@ -5977,8 +5977,6 @@ static int __tracing_resize_ring_buffer(struct trace_array *tr, > ssize_t tracing_resize_ring_buffer(struct trace_array *tr, > unsigned long size, int cpu_id) > { > - int ret; > - > guard(mutex)(&trace_types_lock); > > if (cpu_id != RING_BUFFER_ALL_CPUS) { > @@ -5987,11 +5985,7 @@ ssize_t tracing_resize_ring_buffer(struct trace_array *tr, > return -EINVAL; > } > > - ret = __tracing_resize_ring_buffer(tr, size, cpu_id); > - if (ret < 0) > - ret = -ENOMEM; > - > - return ret; > + return __tracing_resize_ring_buffer(tr, size, cpu_id); > } > > static void update_last_data(struct trace_array *tr) > -- > 2.47.2 >
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 1496a5ac33ae..25ff37aab00f 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -5977,8 +5977,6 @@ static int __tracing_resize_ring_buffer(struct trace_array *tr, ssize_t tracing_resize_ring_buffer(struct trace_array *tr, unsigned long size, int cpu_id) { - int ret; - guard(mutex)(&trace_types_lock); if (cpu_id != RING_BUFFER_ALL_CPUS) { @@ -5987,11 +5985,7 @@ ssize_t tracing_resize_ring_buffer(struct trace_array *tr, return -EINVAL; } - ret = __tracing_resize_ring_buffer(tr, size, cpu_id); - if (ret < 0) - ret = -ENOMEM; - - return ret; + return __tracing_resize_ring_buffer(tr, size, cpu_id); } static void update_last_data(struct trace_array *tr)