diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index d6e72522fc4..edffb6781c0 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -5468,11 +5468,13 @@ ftrace_trace_snapshot_callback(struct ftrace_hash *hash, return ret; out_reg: + ret = alloc_snapshot(&global_trace); + if (ret < 0) + goto out; + ret = register_ftrace_function_probe(glob, ops, count); - if (ret >= 0) - alloc_snapshot(&global_trace); - + out: return ret < 0 ? ret : 0; }