tracing: Have eprobes use filtering logic of trace events
The eprobes open code the reserving of the event on the ring buffer for ftrace instead of using the ftrace event wrappers, which means that it doesn't get affected by the filters, breaking the filtering logic on user space. Link: https://lkml.kernel.org/r/20211130024319.068451680@goodmis.org Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
parent
6c536d76cf
commit
3e8b1a29a0
|
@ -489,18 +489,12 @@ __eprobe_trace_func(struct eprobe_data *edata, void *rec)
|
|||
if (trace_trigger_soft_disabled(edata->file))
|
||||
return;
|
||||
|
||||
fbuffer.trace_ctx = tracing_gen_ctx();
|
||||
fbuffer.trace_file = edata->file;
|
||||
|
||||
dsize = get_eprobe_size(&edata->ep->tp, rec);
|
||||
fbuffer.regs = NULL;
|
||||
|
||||
fbuffer.event =
|
||||
trace_event_buffer_lock_reserve(&fbuffer.buffer, edata->file,
|
||||
call->event.type,
|
||||
sizeof(*entry) + edata->ep->tp.size + dsize,
|
||||
fbuffer.trace_ctx);
|
||||
if (!fbuffer.event)
|
||||
entry = trace_event_buffer_reserve(&fbuffer, edata->file,
|
||||
sizeof(*entry) + edata->ep->tp.size + dsize);
|
||||
|
||||
if (!entry)
|
||||
return;
|
||||
|
||||
entry = fbuffer.entry = ring_buffer_event_data(fbuffer.event);
|
||||
|
|
Loading…
Reference in New Issue