hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/kernel/trace/trace_uprobe.c
....@@ -217,9 +217,10 @@
217217
218218 /* Note that we don't verify it, since the code does not come from user space */
219219 static int
220
-process_fetch_insn(struct fetch_insn *code, struct pt_regs *regs, void *dest,
220
+process_fetch_insn(struct fetch_insn *code, void *rec, void *dest,
221221 void *base)
222222 {
223
+ struct pt_regs *regs = rec;
223224 unsigned long val;
224225
225226 /* 1st stage: get value from context */
....@@ -965,7 +966,7 @@
965966 esize = SIZEOF_TRACE_ENTRY(is_ret_probe(tu));
966967 size = esize + tu->tp.size + dsize;
967968 event = trace_event_buffer_lock_reserve(&buffer, trace_file,
968
- call->event.type, size, 0);
969
+ call->event.type, size, 0, 0);
969970 if (!event)
970971 return;
971972
....@@ -981,7 +982,7 @@
981982
982983 memcpy(data, ucb->buf, tu->tp.size + dsize);
983984
984
- event_trigger_unlock_commit(trace_file, buffer, event, entry, 0);
985
+ event_trigger_unlock_commit(trace_file, buffer, event, entry, 0, 0);
985986 }
986987
987988 /* uprobe handler */
....@@ -1421,7 +1422,7 @@
14211422
14221423 int bpf_get_uprobe_info(const struct perf_event *event, u32 *fd_type,
14231424 const char **filename, u64 *probe_offset,
1424
- bool perf_type_tracepoint)
1425
+ u64 *probe_addr, bool perf_type_tracepoint)
14251426 {
14261427 const char *pevent = trace_event_name(event->tp_event);
14271428 const char *group = event->tp_event->class->system;
....@@ -1438,6 +1439,7 @@
14381439 : BPF_FD_TYPE_UPROBE;
14391440 *filename = tu->filename;
14401441 *probe_offset = tu->offset;
1442
+ *probe_addr = 0;
14411443 return 0;
14421444 }
14431445 #endif /* CONFIG_PERF_EVENTS */