[PATCH] trace: make ftrace likely counters atomic
From: Khaled Saleh
Date: Tue Dec 23 2025 - 15:38:39 EST
The correct and incorrect counters in ftrace_likely_update() are
updated without synchronization and may race on SMP systems.
Convert them to atomic counters to address the existing FIXME
without changing behavior.
Signed-off-by: Khaled Saleh <khaled.saleh.req@xxxxxxxxx>
---
kernel/trace/trace_branch.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/kernel/trace/trace_branch.c b/kernel/trace/trace_branch.c
index 6809b370e991..31a144fa975f 100644
--- a/kernel/trace/trace_branch.c
+++ b/kernel/trace/trace_branch.c
@@ -215,10 +215,11 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
trace_likely_condition(f, val, expect);
/* FIXME: Make this atomic! */
- if (val == expect)
- f->data.correct++;
- else
- f->data.incorrect++;
+ if (val == expect) {
+ atomic_long_inc(&f->data.correct);
+ } else {
+ atomic_long_inc(&f->data.incorrect);
+ }
user_access_restore(flags);
}
--
2.43.0