summaryrefslogtreecommitdiff
path: root/kernel/trace
diff options
context:
space:
mode:
authorCrystal Wood <crwood@redhat.com>2026-06-08 23:54:30 -0500
committerSteven Rostedt <rostedt@goodmis.org>2026-07-06 14:56:18 -0400
commitfe58f457ad8d0a2bef4e053cfecca4b5cd266b1a (patch)
tree3c23cc66287864f34e3e129e4587339e87733682 /kernel/trace
parentc37e0a4b79a6bbb96ce5ffe279d7c001e20529e0 (diff)
tracing/osnoise: Call synchronize_rcu() when unregistering
This ensures that any RCU readers traversing the instance list have finished, before releasing the reference on the tracer that the instance points to. Cc: stable@vger.kernel.org Fixes: a6ed2aee54644 ("tracing: Switch to kvfree_rcu() API") Link: https://patch.msgid.link/20260609045430.1589786-1-crwood@redhat.com Suggested-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Crystal Wood <crwood@redhat.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace')
-rw-r--r--kernel/trace/trace_osnoise.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/trace/trace_osnoise.c b/kernel/trace/trace_osnoise.c
index 5e83c4f6f2b4..0e1265acd1cc 100644
--- a/kernel/trace/trace_osnoise.c
+++ b/kernel/trace/trace_osnoise.c
@@ -179,7 +179,9 @@ static void osnoise_unregister_instance(struct trace_array *tr)
if (!found)
return;
- kvfree_rcu_mightsleep(inst);
+ /* Do a full sync to ensure that tr remains valid, not just inst */
+ synchronize_rcu();
+ kvfree(inst);
}
/*