hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/kernel/trace/trace_kprobe.c
....@@ -1332,9 +1332,10 @@
13321332
13331333 /* Note that we don't verify it, since the code does not come from user space */
13341334 static int
1335
-process_fetch_insn(struct fetch_insn *code, struct pt_regs *regs, void *dest,
1335
+process_fetch_insn(struct fetch_insn *code, void *rec, void *dest,
13361336 void *base)
13371337 {
1338
+ struct pt_regs *regs = rec;
13381339 unsigned long val;
13391340
13401341 retry:
....@@ -1393,7 +1394,8 @@
13931394 if (trace_trigger_soft_disabled(trace_file))
13941395 return;
13951396
1396
- fbuffer.trace_ctx = tracing_gen_ctx();
1397
+ local_save_flags(fbuffer.flags);
1398
+ fbuffer.pc = preempt_count();
13971399 fbuffer.trace_file = trace_file;
13981400
13991401 dsize = __get_data_size(&tk->tp, regs);
....@@ -1402,7 +1404,7 @@
14021404 trace_event_buffer_lock_reserve(&fbuffer.buffer, trace_file,
14031405 call->event.type,
14041406 sizeof(*entry) + tk->tp.size + dsize,
1405
- fbuffer.trace_ctx);
1407
+ fbuffer.flags, fbuffer.pc);
14061408 if (!fbuffer.event)
14071409 return;
14081410
....@@ -1440,7 +1442,8 @@
14401442 if (trace_trigger_soft_disabled(trace_file))
14411443 return;
14421444
1443
- fbuffer.trace_ctx = tracing_gen_ctx();
1445
+ local_save_flags(fbuffer.flags);
1446
+ fbuffer.pc = preempt_count();
14441447 fbuffer.trace_file = trace_file;
14451448
14461449 dsize = __get_data_size(&tk->tp, regs);
....@@ -1448,7 +1451,7 @@
14481451 trace_event_buffer_lock_reserve(&fbuffer.buffer, trace_file,
14491452 call->event.type,
14501453 sizeof(*entry) + tk->tp.size + dsize,
1451
- fbuffer.trace_ctx);
1454
+ fbuffer.flags, fbuffer.pc);
14521455 if (!fbuffer.event)
14531456 return;
14541457