Fixes for function graph:
- Fix missing mutex unlock in error path of register_ftrace_graph() A previous fix added a return on an error path and forgot to unlock the mutex. Instead of dealing with error paths, use guard(mutex) as the mutex is just released at the exit of the function anyway. Other functions in this file should be updated with this, but that's a cleanup and not a fix. - Change cpuhp setup name to be consistent with other cpuhp states The same fix that the above patch fixes added a cpuhp_setup_state() call with the name of "fgraph_idle_init". I was informed that it should instead be something like: "fgraph:online". Update that too. -----BEGIN PGP SIGNATURE----- iIoEABYIADIWIQRRSw7ePDh/lE+zeZMp5XQQmuv6qgUCZxydTRQccm9zdGVkdEBn b29kbWlzLm9yZwAKCRAp5XQQmuv6qsE/APoDcsqqaDJvQ0OsMqVaPdHoj2IUkU4M yueb6U/Kyq1m4wEA259W1PZuQlM0Vo0yJM1w2YIAH18UpO09ZroLnbWoUAc= =2sS+ -----END PGP SIGNATURE----- Merge tag 'ftrace-v6.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace Pull ftrace fixes from Steven Rostedt: - Fix missing mutex unlock in error path of register_ftrace_graph() A previous fix added a return on an error path and forgot to unlock the mutex. Instead of dealing with error paths, use guard(mutex) as the mutex is just released at the exit of the function anyway. Other functions in this file should be updated with this, but that's a cleanup and not a fix. - Change cpuhp setup name to be consistent with other cpuhp states The same fix that the above patch fixes added a cpuhp_setup_state() call with the name of "fgraph_idle_init". I was informed that it should instead be something like: "fgraph:online". Update that too. * tag 'ftrace-v6.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: fgraph: Change the name of cpuhp state to "fgraph:online" fgraph: Fix missing unlock in register_ftrace_graph()
This commit is contained in:
commit
f69a1accfe
@ -1252,10 +1252,10 @@ int register_ftrace_graph(struct fgraph_ops *gops)
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
int i = -1;
|
int i = -1;
|
||||||
|
|
||||||
mutex_lock(&ftrace_lock);
|
guard(mutex)(&ftrace_lock);
|
||||||
|
|
||||||
if (!fgraph_initialized) {
|
if (!fgraph_initialized) {
|
||||||
ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "fgraph_idle_init",
|
ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "fgraph:online",
|
||||||
fgraph_cpu_init, NULL);
|
fgraph_cpu_init, NULL);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
pr_warn("fgraph: Error to init cpu hotplug support\n");
|
pr_warn("fgraph: Error to init cpu hotplug support\n");
|
||||||
@ -1273,10 +1273,8 @@ int register_ftrace_graph(struct fgraph_ops *gops)
|
|||||||
}
|
}
|
||||||
|
|
||||||
i = fgraph_lru_alloc_index();
|
i = fgraph_lru_alloc_index();
|
||||||
if (i < 0 || WARN_ON_ONCE(fgraph_array[i] != &fgraph_stub)) {
|
if (i < 0 || WARN_ON_ONCE(fgraph_array[i] != &fgraph_stub))
|
||||||
ret = -ENOSPC;
|
return -ENOSPC;
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
gops->idx = i;
|
gops->idx = i;
|
||||||
|
|
||||||
ftrace_graph_active++;
|
ftrace_graph_active++;
|
||||||
@ -1313,8 +1311,6 @@ error:
|
|||||||
gops->saved_func = NULL;
|
gops->saved_func = NULL;
|
||||||
fgraph_lru_release_index(i);
|
fgraph_lru_release_index(i);
|
||||||
}
|
}
|
||||||
out:
|
|
||||||
mutex_unlock(&ftrace_lock);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user