Skip to content

Commit 40adaf5

Browse files
committed
tracing/eprobe: Fix eprobe filter to make a filter correctly
Since the eprobe filter was defined based on the eprobe's trace event itself, it doesn't work correctly. Use the original trace event of the eprobe when making the filter so that the filter works correctly. Without this fix: # echo 'e syscalls/sys_enter_openat \ flags_rename=$flags:u32 if flags < 1000' >> dynamic_events # echo 1 > events/eprobes/sys_enter_openat/enable [ 114.551550] event trace: Could not enable event sys_enter_openat -bash: echo: write error: Invalid argument With this fix: # echo 'e syscalls/sys_enter_openat \ flags_rename=$flags:u32 if flags < 1000' >> dynamic_events # echo 1 > events/eprobes/sys_enter_openat/enable # tail trace cat-241 [000] ...1. 266.498449: sys_enter_openat: (syscalls.sys_enter_openat) flags_rename=0 cat-242 [000] ...1. 266.977640: sys_enter_openat: (syscalls.sys_enter_openat) flags_rename=0 Link: https://lore.kernel.org/all/166823166395.1385292.8931770640212414483.stgit@devnote3/ Fixes: 752be5c ("tracing/eprobe: Add eprobe filter support") Reported-by: Rafael Mendonca <[email protected]> Tested-by: Rafael Mendonca <[email protected]> Signed-off-by: Masami Hiramatsu (Google) <[email protected]>
1 parent 342a4a2 commit 40adaf5

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

kernel/trace/trace_eprobe.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,7 @@ new_eprobe_trigger(struct trace_eprobe *ep, struct trace_event_file *file)
643643
INIT_LIST_HEAD(&trigger->list);
644644

645645
if (ep->filter_str) {
646-
ret = create_event_filter(file->tr, file->event_call,
646+
ret = create_event_filter(file->tr, ep->event,
647647
ep->filter_str, false, &filter);
648648
if (ret)
649649
goto error;

0 commit comments

Comments
 (0)