hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/kernel/trace/trace_branch.c
....@@ -32,10 +32,10 @@
3232 {
3333 struct trace_event_call *call = &event_branch;
3434 struct trace_array *tr = branch_tracer;
35
+ struct trace_buffer *buffer;
3536 struct trace_array_cpu *data;
3637 struct ring_buffer_event *event;
3738 struct trace_branch *entry;
38
- struct ring_buffer *buffer;
3939 unsigned long flags;
4040 int pc;
4141 const char *p;
....@@ -55,12 +55,12 @@
5555
5656 raw_local_irq_save(flags);
5757 current->trace_recursion |= TRACE_BRANCH_BIT;
58
- data = this_cpu_ptr(tr->trace_buffer.data);
58
+ data = this_cpu_ptr(tr->array_buffer.data);
5959 if (atomic_read(&data->disabled))
6060 goto out;
6161
6262 pc = preempt_count();
63
- buffer = tr->trace_buffer.buffer;
63
+ buffer = tr->array_buffer.buffer;
6464 event = trace_buffer_lock_reserve(buffer, TRACE_BRANCH,
6565 sizeof(*entry), flags, pc);
6666 if (!event)
....@@ -205,6 +205,8 @@
205205 void ftrace_likely_update(struct ftrace_likely_data *f, int val,
206206 int expect, int is_constant)
207207 {
208
+ unsigned long flags = user_access_save();
209
+
208210 /* A constant is always correct */
209211 if (is_constant) {
210212 f->constant++;
....@@ -223,6 +225,8 @@
223225 f->data.correct++;
224226 else
225227 f->data.incorrect++;
228
+
229
+ user_access_restore(flags);
226230 }
227231 EXPORT_SYMBOL(ftrace_likely_update);
228232
....@@ -240,7 +244,7 @@
240244 return 0;
241245 }
242246
243
-static inline long get_incorrect_percent(struct ftrace_branch_data *p)
247
+static inline long get_incorrect_percent(const struct ftrace_branch_data *p)
244248 {
245249 long percent;
246250
....@@ -328,10 +332,10 @@
328332 return p;
329333 }
330334
331
-static int annotated_branch_stat_cmp(void *p1, void *p2)
335
+static int annotated_branch_stat_cmp(const void *p1, const void *p2)
332336 {
333
- struct ftrace_branch_data *a = p1;
334
- struct ftrace_branch_data *b = p2;
337
+ const struct ftrace_branch_data *a = p1;
338
+ const struct ftrace_branch_data *b = p2;
335339
336340 long percent_a, percent_b;
337341