| From stable+bounces-172738-greg=kroah.com@vger.kernel.org Sun Aug 24 15:49:46 2025 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sun, 24 Aug 2025 09:49:35 -0400 |
| Subject: tracing: Remove unneeded goto out logic |
| To: stable@vger.kernel.org |
| Cc: Steven Rostedt <rostedt@goodmis.org>, Masami Hiramatsu <mhiramat@kernel.org>, Mark Rutland <mark.rutland@arm.com>, Mathieu Desnoyers <mathieu.desnoyers@efficios.com>, Andrew Morton <akpm@linux-foundation.org>, Sasha Levin <sashal@kernel.org> |
| Message-ID: <20250824134936.2918494-1-sashal@kernel.org> |
| |
| From: Steven Rostedt <rostedt@goodmis.org> |
| |
| [ Upstream commit c89504a703fb779052213add0e8ed642f4a4f1c8 ] |
| |
| Several places in the trace.c file there's a goto out where the out is |
| simply a return. There's no reason to jump to the out label if it's not |
| doing any more logic but simply returning from the function. |
| |
| Replace the goto outs with a return and remove the out labels. |
| |
| 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> |
| Link: https://lore.kernel.org/20250801203857.538726745@kernel.org |
| Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| kernel/trace/trace.c | 37 ++++++++++++++----------------------- |
| 1 file changed, 14 insertions(+), 23 deletions(-) |
| |
| --- a/kernel/trace/trace.c |
| +++ b/kernel/trace/trace.c |
| @@ -1618,7 +1618,7 @@ int trace_get_user(struct trace_parser * |
| |
| ret = get_user(ch, ubuf++); |
| if (ret) |
| - goto out; |
| + return ret; |
| |
| read++; |
| cnt--; |
| @@ -1632,7 +1632,7 @@ int trace_get_user(struct trace_parser * |
| while (cnt && isspace(ch)) { |
| ret = get_user(ch, ubuf++); |
| if (ret) |
| - goto out; |
| + return ret; |
| read++; |
| cnt--; |
| } |
| @@ -1642,8 +1642,7 @@ int trace_get_user(struct trace_parser * |
| /* only spaces were written */ |
| if (isspace(ch) || !ch) { |
| *ppos += read; |
| - ret = read; |
| - goto out; |
| + return read; |
| } |
| } |
| |
| @@ -1651,13 +1650,12 @@ int trace_get_user(struct trace_parser * |
| while (cnt && !isspace(ch) && ch) { |
| if (parser->idx < parser->size - 1) |
| parser->buffer[parser->idx++] = ch; |
| - else { |
| - ret = -EINVAL; |
| - goto out; |
| - } |
| + else |
| + return -EINVAL; |
| + |
| ret = get_user(ch, ubuf++); |
| if (ret) |
| - goto out; |
| + return ret; |
| read++; |
| cnt--; |
| } |
| @@ -1672,15 +1670,11 @@ int trace_get_user(struct trace_parser * |
| /* Make sure the parsed string always terminates with '\0'. */ |
| parser->buffer[parser->idx] = 0; |
| } else { |
| - ret = -EINVAL; |
| - goto out; |
| + return -EINVAL; |
| } |
| |
| *ppos += read; |
| - ret = read; |
| - |
| -out: |
| - return ret; |
| + return read; |
| } |
| |
| /* TODO add a seq_buf_to_buffer() */ |
| @@ -2149,10 +2143,10 @@ int __init register_tracer(struct tracer |
| mutex_unlock(&trace_types_lock); |
| |
| if (ret || !default_bootup_tracer) |
| - goto out_unlock; |
| + return ret; |
| |
| if (strncmp(default_bootup_tracer, type->name, MAX_TRACER_SIZE)) |
| - goto out_unlock; |
| + return 0; |
| |
| printk(KERN_INFO "Starting tracer '%s'\n", type->name); |
| /* Do we want this tracer to start on bootup? */ |
| @@ -2164,8 +2158,7 @@ int __init register_tracer(struct tracer |
| /* disable other selftests, since this will break it. */ |
| disable_tracing_selftest("running a tracer"); |
| |
| - out_unlock: |
| - return ret; |
| + return 0; |
| } |
| |
| static void tracing_reset_cpu(struct array_buffer *buf, int cpu) |
| @@ -8761,11 +8754,10 @@ ftrace_trace_snapshot_callback(struct tr |
| out_reg: |
| ret = tracing_alloc_snapshot_instance(tr); |
| if (ret < 0) |
| - goto out; |
| + return ret; |
| |
| ret = register_ftrace_function_probe(glob, tr, ops, count); |
| |
| - out: |
| return ret < 0 ? ret : 0; |
| } |
| |
| @@ -10292,7 +10284,7 @@ __init static int tracer_alloc_buffers(v |
| BUILD_BUG_ON(TRACE_ITER_LAST_BIT > TRACE_FLAGS_MAX_SIZE); |
| |
| if (!alloc_cpumask_var(&tracing_buffer_mask, GFP_KERNEL)) |
| - goto out; |
| + return -ENOMEM; |
| |
| if (!alloc_cpumask_var(&global_trace.tracing_cpumask, GFP_KERNEL)) |
| goto out_free_buffer_mask; |
| @@ -10405,7 +10397,6 @@ out_free_cpumask: |
| free_cpumask_var(global_trace.tracing_cpumask); |
| out_free_buffer_mask: |
| free_cpumask_var(tracing_buffer_mask); |
| -out: |
| return ret; |
| } |
| |