Skip to content

Commit 59da880

Browse files
anakryikoPeter Zijlstra
authored andcommitted
uprobes: get rid of enum uprobe_filter_ctx in uprobe filter callbacks
It serves no purpose beyond adding unnecessray argument passed to the filter callback. Just get rid of it, no one is actually using it. Signed-off-by: Andrii Nakryiko <[email protected]> Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Reviewed-by: Oleg Nesterov <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 8617408 commit 59da880

File tree

4 files changed

+12
-28
lines changed

4 files changed

+12
-28
lines changed

include/linux/uprobes.h

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,12 @@ struct page;
2828

2929
#define MAX_URETPROBE_DEPTH 64
3030

31-
enum uprobe_filter_ctx {
32-
UPROBE_FILTER_REGISTER,
33-
UPROBE_FILTER_UNREGISTER,
34-
UPROBE_FILTER_MMAP,
35-
};
36-
3731
struct uprobe_consumer {
3832
int (*handler)(struct uprobe_consumer *self, struct pt_regs *regs);
3933
int (*ret_handler)(struct uprobe_consumer *self,
4034
unsigned long func,
4135
struct pt_regs *regs);
42-
bool (*filter)(struct uprobe_consumer *self,
43-
enum uprobe_filter_ctx ctx,
44-
struct mm_struct *mm);
36+
bool (*filter)(struct uprobe_consumer *self, struct mm_struct *mm);
4537

4638
struct uprobe_consumer *next;
4739
};

kernel/events/uprobes.c

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -918,21 +918,19 @@ static int prepare_uprobe(struct uprobe *uprobe, struct file *file,
918918
return ret;
919919
}
920920

921-
static inline bool consumer_filter(struct uprobe_consumer *uc,
922-
enum uprobe_filter_ctx ctx, struct mm_struct *mm)
921+
static inline bool consumer_filter(struct uprobe_consumer *uc, struct mm_struct *mm)
923922
{
924-
return !uc->filter || uc->filter(uc, ctx, mm);
923+
return !uc->filter || uc->filter(uc, mm);
925924
}
926925

927-
static bool filter_chain(struct uprobe *uprobe,
928-
enum uprobe_filter_ctx ctx, struct mm_struct *mm)
926+
static bool filter_chain(struct uprobe *uprobe, struct mm_struct *mm)
929927
{
930928
struct uprobe_consumer *uc;
931929
bool ret = false;
932930

933931
down_read(&uprobe->consumer_rwsem);
934932
for (uc = uprobe->consumers; uc; uc = uc->next) {
935-
ret = consumer_filter(uc, ctx, mm);
933+
ret = consumer_filter(uc, mm);
936934
if (ret)
937935
break;
938936
}
@@ -1099,12 +1097,10 @@ register_for_each_vma(struct uprobe *uprobe, struct uprobe_consumer *new)
10991097

11001098
if (is_register) {
11011099
/* consult only the "caller", new consumer. */
1102-
if (consumer_filter(new,
1103-
UPROBE_FILTER_REGISTER, mm))
1100+
if (consumer_filter(new, mm))
11041101
err = install_breakpoint(uprobe, mm, vma, info->vaddr);
11051102
} else if (test_bit(MMF_HAS_UPROBES, &mm->flags)) {
1106-
if (!filter_chain(uprobe,
1107-
UPROBE_FILTER_UNREGISTER, mm))
1103+
if (!filter_chain(uprobe, mm))
11081104
err |= remove_breakpoint(uprobe, mm, info->vaddr);
11091105
}
11101106

@@ -1387,7 +1383,7 @@ int uprobe_mmap(struct vm_area_struct *vma)
13871383
*/
13881384
list_for_each_entry_safe(uprobe, u, &tmp_list, pending_list) {
13891385
if (!fatal_signal_pending(current) &&
1390-
filter_chain(uprobe, UPROBE_FILTER_MMAP, vma->vm_mm)) {
1386+
filter_chain(uprobe, vma->vm_mm)) {
13911387
unsigned long vaddr = offset_to_vaddr(vma, uprobe->offset);
13921388
install_breakpoint(uprobe, vma->vm_mm, vma, vaddr);
13931389
}

kernel/trace/bpf_trace.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3320,8 +3320,7 @@ static int uprobe_prog_run(struct bpf_uprobe *uprobe,
33203320
}
33213321

33223322
static bool
3323-
uprobe_multi_link_filter(struct uprobe_consumer *con, enum uprobe_filter_ctx ctx,
3324-
struct mm_struct *mm)
3323+
uprobe_multi_link_filter(struct uprobe_consumer *con, struct mm_struct *mm)
33253324
{
33263325
struct bpf_uprobe *uprobe;
33273326

kernel/trace/trace_uprobe.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1078,9 +1078,7 @@ print_uprobe_event(struct trace_iterator *iter, int flags, struct trace_event *e
10781078
return trace_handle_return(s);
10791079
}
10801080

1081-
typedef bool (*filter_func_t)(struct uprobe_consumer *self,
1082-
enum uprobe_filter_ctx ctx,
1083-
struct mm_struct *mm);
1081+
typedef bool (*filter_func_t)(struct uprobe_consumer *self, struct mm_struct *mm);
10841082

10851083
static int trace_uprobe_enable(struct trace_uprobe *tu, filter_func_t filter)
10861084
{
@@ -1339,8 +1337,7 @@ static int uprobe_perf_open(struct trace_event_call *call,
13391337
return err;
13401338
}
13411339

1342-
static bool uprobe_perf_filter(struct uprobe_consumer *uc,
1343-
enum uprobe_filter_ctx ctx, struct mm_struct *mm)
1340+
static bool uprobe_perf_filter(struct uprobe_consumer *uc, struct mm_struct *mm)
13441341
{
13451342
struct trace_uprobe_filter *filter;
13461343
struct trace_uprobe *tu;
@@ -1426,7 +1423,7 @@ static void __uprobe_perf_func(struct trace_uprobe *tu,
14261423
static int uprobe_perf_func(struct trace_uprobe *tu, struct pt_regs *regs,
14271424
struct uprobe_cpu_buffer **ucbp)
14281425
{
1429-
if (!uprobe_perf_filter(&tu->consumer, 0, current->mm))
1426+
if (!uprobe_perf_filter(&tu->consumer, current->mm))
14301427
return UPROBE_HANDLER_REMOVE;
14311428

14321429
if (!is_ret_probe(tu))

0 commit comments

Comments
 (0)