Symbol: uprobe
arch/x86/kernel/uprobes.c
804
SYSCALL_DEFINE0(uprobe)
include/linux/uprobes.h
119
struct uprobe *uprobe;
include/linux/uprobes.h
147
struct uprobe *active_uprobe;
include/linux/uprobes.h
209
extern struct uprobe *uprobe_register(struct inode *inode, loff_t offset, loff_t ref_ctr_offset, struct uprobe_consumer *uc);
include/linux/uprobes.h
210
extern int uprobe_apply(struct uprobe *uprobe, struct uprobe_consumer *uc, bool);
include/linux/uprobes.h
211
extern void uprobe_unregister_nosync(struct uprobe *uprobe, struct uprobe_consumer *uc);
include/linux/uprobes.h
22
struct uprobe;
include/linux/uprobes.h
256
static inline struct uprobe *
include/linux/uprobes.h
262
uprobe_apply(struct uprobe* uprobe, struct uprobe_consumer *uc, bool add)
include/linux/uprobes.h
267
uprobe_unregister_nosync(struct uprobe *uprobe, struct uprobe_consumer *uc)
include/uapi/linux/bpf.h
6822
} uprobe; /* BPF_PERF_EVENT_UPROBE, BPF_PERF_EVENT_URETPROBE */
kernel/bpf/syscall.c
4006
uname = u64_to_user_ptr(info->perf_event.uprobe.file_name);
kernel/bpf/syscall.c
4007
ulen = info->perf_event.uprobe.name_len;
kernel/bpf/syscall.c
4017
info->perf_event.uprobe.name_len = ulen;
kernel/bpf/syscall.c
4018
info->perf_event.uprobe.offset = offset;
kernel/bpf/syscall.c
4019
info->perf_event.uprobe.cookie = event->bpf_cookie;
kernel/bpf/syscall.c
4020
info->perf_event.uprobe.ref_ctr_offset = ref_ctr_offset;
kernel/events/uprobes.c
1001
uprobe->inode = inode;
kernel/events/uprobes.c
1002
uprobe->offset = offset;
kernel/events/uprobes.c
1003
uprobe->ref_ctr_offset = ref_ctr_offset;
kernel/events/uprobes.c
1004
INIT_LIST_HEAD(&uprobe->consumers);
kernel/events/uprobes.c
1005
init_rwsem(&uprobe->register_rwsem);
kernel/events/uprobes.c
1006
init_rwsem(&uprobe->consumer_rwsem);
kernel/events/uprobes.c
1007
RB_CLEAR_NODE(&uprobe->rb_node);
kernel/events/uprobes.c
1008
refcount_set(&uprobe->ref, 1);
kernel/events/uprobes.c
1011
cur_uprobe = insert_uprobe(uprobe);
kernel/events/uprobes.c
1013
if (cur_uprobe != uprobe) {
kernel/events/uprobes.c
1014
if (cur_uprobe->ref_ctr_offset != uprobe->ref_ctr_offset) {
kernel/events/uprobes.c
1015
ref_ctr_mismatch_warn(cur_uprobe, uprobe);
kernel/events/uprobes.c
1017
kfree(uprobe);
kernel/events/uprobes.c
1020
kfree(uprobe);
kernel/events/uprobes.c
1021
uprobe = cur_uprobe;
kernel/events/uprobes.c
1024
return uprobe;
kernel/events/uprobes.c
1027
static void consumer_add(struct uprobe *uprobe, struct uprobe_consumer *uc)
kernel/events/uprobes.c
1031
down_write(&uprobe->consumer_rwsem);
kernel/events/uprobes.c
1032
list_add_rcu(&uc->cons_node, &uprobe->consumers);
kernel/events/uprobes.c
1034
up_write(&uprobe->consumer_rwsem);
kernel/events/uprobes.c
1041
static void consumer_del(struct uprobe *uprobe, struct uprobe_consumer *uc)
kernel/events/uprobes.c
1043
down_write(&uprobe->consumer_rwsem);
kernel/events/uprobes.c
1045
up_write(&uprobe->consumer_rwsem);
kernel/events/uprobes.c
1070
static int copy_insn(struct uprobe *uprobe, struct file *filp)
kernel/events/uprobes.c
1072
struct address_space *mapping = uprobe->inode->i_mapping;
kernel/events/uprobes.c
1073
loff_t offs = uprobe->offset;
kernel/events/uprobes.c
1074
void *insn = &uprobe->arch.insn;
kernel/events/uprobes.c
1075
int size = sizeof(uprobe->arch.insn);
kernel/events/uprobes.c
1080
if (offs >= i_size_read(uprobe->inode))
kernel/events/uprobes.c
1096
static int prepare_uprobe(struct uprobe *uprobe, struct file *file,
kernel/events/uprobes.c
1101
if (test_bit(UPROBE_COPY_INSN, &uprobe->flags))
kernel/events/uprobes.c
1105
down_write(&uprobe->consumer_rwsem);
kernel/events/uprobes.c
1106
if (test_bit(UPROBE_COPY_INSN, &uprobe->flags))
kernel/events/uprobes.c
1109
ret = copy_insn(uprobe, file);
kernel/events/uprobes.c
1114
if (is_trap_insn((uprobe_opcode_t *)&uprobe->arch.insn))
kernel/events/uprobes.c
1117
ret = arch_uprobe_analyze_insn(&uprobe->arch, mm, vaddr);
kernel/events/uprobes.c
1122
set_bit(UPROBE_COPY_INSN, &uprobe->flags);
kernel/events/uprobes.c
1125
up_write(&uprobe->consumer_rwsem);
kernel/events/uprobes.c
1135
static bool filter_chain(struct uprobe *uprobe, struct mm_struct *mm)
kernel/events/uprobes.c
1140
down_read(&uprobe->consumer_rwsem);
kernel/events/uprobes.c
1141
list_for_each_entry(uc, &uprobe->consumers, cons_node) {
kernel/events/uprobes.c
1146
up_read(&uprobe->consumer_rwsem);
kernel/events/uprobes.c
1151
static int install_breakpoint(struct uprobe *uprobe, struct vm_area_struct *vma,
kernel/events/uprobes.c
1158
ret = prepare_uprobe(uprobe, vma->vm_file, mm, vaddr);
kernel/events/uprobes.c
1170
ret = set_swbp(&uprobe->arch, vma, vaddr);
kernel/events/uprobes.c
1179
static int remove_breakpoint(struct uprobe *uprobe, struct vm_area_struct *vma,
kernel/events/uprobes.c
1185
return set_orig_insn(&uprobe->arch, vma, vaddr);
kernel/events/uprobes.c
1272
register_for_each_vma(struct uprobe *uprobe, struct uprobe_consumer *new)
kernel/events/uprobes.c
1279
info = build_map_info(uprobe->inode->i_mapping,
kernel/events/uprobes.c
1280
uprobe->offset, is_register);
kernel/events/uprobes.c
1305
file_inode(vma->vm_file) != uprobe->inode)
kernel/events/uprobes.c
1309
vaddr_to_offset(vma, info->vaddr) != uprobe->offset)
kernel/events/uprobes.c
1315
err = install_breakpoint(uprobe, vma, info->vaddr);
kernel/events/uprobes.c
1317
if (!filter_chain(uprobe, mm))
kernel/events/uprobes.c
1318
err |= remove_breakpoint(uprobe, vma, info->vaddr);
kernel/events/uprobes.c
1337
void uprobe_unregister_nosync(struct uprobe *uprobe, struct uprobe_consumer *uc)
kernel/events/uprobes.c
1341
down_write(&uprobe->register_rwsem);
kernel/events/uprobes.c
1342
consumer_del(uprobe, uc);
kernel/events/uprobes.c
1343
err = register_for_each_vma(uprobe, NULL);
kernel/events/uprobes.c
1344
up_write(&uprobe->register_rwsem);
kernel/events/uprobes.c
1352
put_uprobe(uprobe);
kernel/events/uprobes.c
1390
struct uprobe *uprobe_register(struct inode *inode,
kernel/events/uprobes.c
1394
struct uprobe *uprobe;
kernel/events/uprobes.c
1418
uprobe = alloc_uprobe(inode, offset, ref_ctr_offset);
kernel/events/uprobes.c
1419
if (IS_ERR(uprobe))
kernel/events/uprobes.c
1420
return uprobe;
kernel/events/uprobes.c
1422
down_write(&uprobe->register_rwsem);
kernel/events/uprobes.c
1423
consumer_add(uprobe, uc);
kernel/events/uprobes.c
1424
ret = register_for_each_vma(uprobe, uc);
kernel/events/uprobes.c
1425
up_write(&uprobe->register_rwsem);
kernel/events/uprobes.c
1428
uprobe_unregister_nosync(uprobe, uc);
kernel/events/uprobes.c
1438
return uprobe;
kernel/events/uprobes.c
1449
int uprobe_apply(struct uprobe *uprobe, struct uprobe_consumer *uc, bool add)
kernel/events/uprobes.c
1454
down_write(&uprobe->register_rwsem);
kernel/events/uprobes.c
1457
list_for_each_entry_rcu(con, &uprobe->consumers, cons_node, rcu_read_lock_trace_held()) {
kernel/events/uprobes.c
1459
ret = register_for_each_vma(uprobe, add ? uc : NULL);
kernel/events/uprobes.c
1465
up_write(&uprobe->register_rwsem);
kernel/events/uprobes.c
1470
static int unapply_uprobe(struct uprobe *uprobe, struct mm_struct *mm)
kernel/events/uprobes.c
1482
file_inode(vma->vm_file) != uprobe->inode)
kernel/events/uprobes.c
1486
if (uprobe->offset < offset ||
kernel/events/uprobes.c
1487
uprobe->offset >= offset + vma->vm_end - vma->vm_start)
kernel/events/uprobes.c
1490
vaddr = offset_to_vaddr(vma, uprobe->offset);
kernel/events/uprobes.c
1491
err |= remove_breakpoint(uprobe, vma, vaddr);
kernel/events/uprobes.c
1504
struct uprobe *u = rb_entry(n, struct uprobe, rb_node);
kernel/events/uprobes.c
1533
struct uprobe *u;
kernel/events/uprobes.c
1543
u = rb_entry(t, struct uprobe, rb_node);
kernel/events/uprobes.c
1551
u = rb_entry(t, struct uprobe, rb_node);
kernel/events/uprobes.c
1575
!valid_ref_ctr_vma(du->uprobe, vma))
kernel/events/uprobes.c
1578
vaddr = offset_to_vaddr(vma, du->uprobe->ref_ctr_offset);
kernel/events/uprobes.c
1581
update_ref_ctr_warn(du->uprobe, vma->vm_mm, 1);
kernel/events/uprobes.c
1600
struct uprobe *uprobe, *u;
kernel/events/uprobes.c
1625
list_for_each_entry_safe(uprobe, u, &tmp_list, pending_list) {
kernel/events/uprobes.c
1627
filter_chain(uprobe, vma->vm_mm)) {
kernel/events/uprobes.c
1628
unsigned long vaddr = offset_to_vaddr(vma, uprobe->offset);
kernel/events/uprobes.c
1629
install_breakpoint(uprobe, vma, vaddr);
kernel/events/uprobes.c
1631
put_uprobe(uprobe);
kernel/events/uprobes.c
1873
static bool xol_get_insn_slot(struct uprobe *uprobe, struct uprobe_task *utask)
kernel/events/uprobes.c
1885
&uprobe->arch.ixol, sizeof(uprobe->arch.ixol));
kernel/events/uprobes.c
2137
struct uprobe *uprobe;
kernel/events/uprobes.c
2154
uprobe = hprobe_expire(&o->hprobe, true);
kernel/events/uprobes.c
2162
hprobe_init_stable(&n->hprobe, uprobe);
kernel/events/uprobes.c
224
delayed_uprobe_check(struct uprobe *uprobe, struct mm_struct *mm)
kernel/events/uprobes.c
2252
static void prepare_uretprobe(struct uprobe *uprobe, struct pt_regs *regs,
kernel/events/uprobes.c
229
if (du->uprobe == uprobe && du->mm == mm)
kernel/events/uprobes.c
2306
hprobe_init_leased(&ri->hprobe, uprobe, srcu_idx);
kernel/events/uprobes.c
2319
pre_ssout(struct uprobe *uprobe, struct pt_regs *regs, unsigned long bp_vaddr)
kernel/events/uprobes.c
2324
if (!try_get_uprobe(uprobe))
kernel/events/uprobes.c
2327
if (!xol_get_insn_slot(uprobe, utask)) {
kernel/events/uprobes.c
2333
err = arch_uprobe_pre_xol(&uprobe->arch, regs);
kernel/events/uprobes.c
2339
utask->active_uprobe = uprobe;
kernel/events/uprobes.c
234
static int delayed_uprobe_add(struct uprobe *uprobe, struct mm_struct *mm)
kernel/events/uprobes.c
2343
put_uprobe(uprobe);
kernel/events/uprobes.c
238
if (delayed_uprobe_check(uprobe, mm))
kernel/events/uprobes.c
2427
static struct uprobe *find_active_uprobe_speculative(unsigned long bp_vaddr)
kernel/events/uprobes.c
2430
struct uprobe *uprobe = NULL;
kernel/events/uprobes.c
245
du->uprobe = uprobe;
kernel/events/uprobes.c
2457
uprobe = find_uprobe_rcu(vm_file->f_inode, offset);
kernel/events/uprobes.c
2458
if (!uprobe)
kernel/events/uprobes.c
2465
return uprobe;
kernel/events/uprobes.c
2469
static struct uprobe *find_active_uprobe_rcu(unsigned long bp_vaddr, int *is_swbp)
kernel/events/uprobes.c
2472
struct uprobe *uprobe = NULL;
kernel/events/uprobes.c
2475
uprobe = find_active_uprobe_speculative(bp_vaddr);
kernel/events/uprobes.c
2476
if (uprobe)
kernel/events/uprobes.c
2477
return uprobe;
kernel/events/uprobes.c
2486
uprobe = find_uprobe_rcu(inode, offset);
kernel/events/uprobes.c
2489
if (!uprobe)
kernel/events/uprobes.c
2495
if (!uprobe && mm_flags_test_and_clear(MMF_RECALC_UPROBES, mm))
kernel/events/uprobes.c
2499
return uprobe;
kernel/events/uprobes.c
2549
static void handler_chain(struct uprobe *uprobe, struct pt_regs *regs)
kernel/events/uprobes.c
2556
utask->auprobe = &uprobe->arch;
kernel/events/uprobes.c
2558
list_for_each_entry_rcu(uc, &uprobe->consumers, cons_node, rcu_read_lock_trace_held()) {
kernel/events/uprobes.c
2584
prepare_uretprobe(uprobe, regs, ri);
kernel/events/uprobes.c
2587
down_read(&uprobe->register_rwsem);
kernel/events/uprobes.c
259
static void delayed_uprobe_remove(struct uprobe *uprobe, struct mm_struct *mm)
kernel/events/uprobes.c
2590
if (!filter_chain(uprobe, current->mm)) {
kernel/events/uprobes.c
2591
WARN_ON(!uprobe_is_active(uprobe));
kernel/events/uprobes.c
2592
unapply_uprobe(uprobe, current->mm);
kernel/events/uprobes.c
2595
up_read(&uprobe->register_rwsem);
kernel/events/uprobes.c
2600
handle_uretprobe_chain(struct return_instance *ri, struct uprobe *uprobe, struct pt_regs *regs)
kernel/events/uprobes.c
2607
if (unlikely(!uprobe))
kernel/events/uprobes.c
2611
list_for_each_entry_rcu(uc, &uprobe->consumers, cons_node, rcu_read_lock_trace_held()) {
kernel/events/uprobes.c
2639
struct uprobe *uprobe;
kernel/events/uprobes.c
264
if (!uprobe && !mm)
kernel/events/uprobes.c
2675
uprobe = hprobe_consume(&ri->hprobe, &hstate);
kernel/events/uprobes.c
2677
handle_uretprobe_chain(ri, uprobe, regs);
kernel/events/uprobes.c
270
if (uprobe && du->uprobe != uprobe)
kernel/events/uprobes.c
2714
struct uprobe *uprobe;
kernel/events/uprobes.c
2724
uprobe = find_active_uprobe_rcu(bp_vaddr, &is_swbp);
kernel/events/uprobes.c
2725
if (!uprobe) {
kernel/events/uprobes.c
2751
if (unlikely(!test_bit(UPROBE_COPY_INSN, &uprobe->flags)))
kernel/events/uprobes.c
2767
if (arch_uprobe_ignore(&uprobe->arch, regs))
kernel/events/uprobes.c
2770
handler_chain(uprobe, regs);
kernel/events/uprobes.c
2773
arch_uprobe_optimize(&uprobe->arch, bp_vaddr);
kernel/events/uprobes.c
2782
if (arch_uprobe_skip_sstep(&uprobe->arch, regs))
kernel/events/uprobes.c
2785
if (pre_ssout(uprobe, regs, bp_vaddr))
kernel/events/uprobes.c
279
static bool valid_ref_ctr_vma(struct uprobe *uprobe,
kernel/events/uprobes.c
2795
struct uprobe *uprobe;
kernel/events/uprobes.c
2800
uprobe = find_active_uprobe_rcu(bp_vaddr, &is_swbp);
kernel/events/uprobes.c
2801
if (!uprobe)
kernel/events/uprobes.c
2805
if (arch_uprobe_ignore(&uprobe->arch, regs))
kernel/events/uprobes.c
2807
handler_chain(uprobe, regs);
kernel/events/uprobes.c
2816
struct uprobe *uprobe;
kernel/events/uprobes.c
2819
uprobe = utask->active_uprobe;
kernel/events/uprobes.c
282
unsigned long vaddr = offset_to_vaddr(vma, uprobe->ref_ctr_offset);
kernel/events/uprobes.c
2821
err = arch_uprobe_post_xol(&uprobe->arch, regs);
kernel/events/uprobes.c
2823
arch_uprobe_abort_xol(&uprobe->arch, regs);
kernel/events/uprobes.c
2827
put_uprobe(uprobe);
kernel/events/uprobes.c
284
return uprobe->ref_ctr_offset &&
kernel/events/uprobes.c
286
file_inode(vma->vm_file) == uprobe->inode &&
kernel/events/uprobes.c
293
find_ref_ctr_vma(struct uprobe *uprobe, struct mm_struct *mm)
kernel/events/uprobes.c
299
if (valid_ref_ctr_vma(uprobe, tmp))
kernel/events/uprobes.c
344
static void update_ref_ctr_warn(struct uprobe *uprobe,
kernel/events/uprobes.c
349
d > 0 ? "increment" : "decrement", uprobe->inode->i_ino,
kernel/events/uprobes.c
350
(unsigned long long) uprobe->offset,
kernel/events/uprobes.c
351
(unsigned long long) uprobe->ref_ctr_offset, mm);
kernel/events/uprobes.c
354
static int update_ref_ctr(struct uprobe *uprobe, struct mm_struct *mm,
kernel/events/uprobes.c
361
rc_vma = find_ref_ctr_vma(uprobe, mm);
kernel/events/uprobes.c
364
rc_vaddr = offset_to_vaddr(rc_vma, uprobe->ref_ctr_offset);
kernel/events/uprobes.c
367
update_ref_ctr_warn(uprobe, mm, d);
kernel/events/uprobes.c
375
ret = delayed_uprobe_add(uprobe, mm);
kernel/events/uprobes.c
377
delayed_uprobe_remove(uprobe, mm);
kernel/events/uprobes.c
504
struct uprobe *uprobe;
kernel/events/uprobes.c
512
uprobe = container_of(auprobe, struct uprobe, arch);
kernel/events/uprobes.c
541
if (do_update_ref_ctr && !ref_ctr_updated && uprobe->ref_ctr_offset) {
kernel/events/uprobes.c
542
ret = update_ref_ctr(uprobe, mm, is_register ? 1 : -1);
kernel/events/uprobes.c
594
update_ref_ctr(uprobe, mm, is_register ? -1 : 1);
kernel/events/uprobes.c
635
static struct uprobe *get_uprobe(struct uprobe *uprobe)
kernel/events/uprobes.c
637
refcount_inc(&uprobe->ref);
kernel/events/uprobes.c
638
return uprobe;
kernel/events/uprobes.c
647
static struct uprobe *try_get_uprobe(struct uprobe *uprobe)
kernel/events/uprobes.c
649
if (refcount_inc_not_zero(&uprobe->ref))
kernel/events/uprobes.c
650
return uprobe;
kernel/events/uprobes.c
654
static inline bool uprobe_is_active(struct uprobe *uprobe)
kernel/events/uprobes.c
656
return !RB_EMPTY_NODE(&uprobe->rb_node);
kernel/events/uprobes.c
661
struct uprobe *uprobe = container_of(rcu, struct uprobe, rcu);
kernel/events/uprobes.c
663
kfree(uprobe);
kernel/events/uprobes.c
668
struct uprobe *uprobe = container_of(rcu, struct uprobe, rcu);
kernel/events/uprobes.c
670
call_rcu_tasks_trace(&uprobe->rcu, uprobe_free_rcu_tasks_trace);
kernel/events/uprobes.c
675
struct uprobe *uprobe = container_of(work, struct uprobe, work);
kernel/events/uprobes.c
679
if (uprobe_is_active(uprobe)) {
kernel/events/uprobes.c
681
rb_erase(&uprobe->rb_node, &uprobes_tree);
kernel/events/uprobes.c
693
delayed_uprobe_remove(uprobe, NULL);
kernel/events/uprobes.c
697
call_srcu(&uretprobes_srcu, &uprobe->rcu, uprobe_free_srcu);
kernel/events/uprobes.c
700
static void put_uprobe(struct uprobe *uprobe)
kernel/events/uprobes.c
702
if (!refcount_dec_and_test(&uprobe->ref))
kernel/events/uprobes.c
705
INIT_WORK(&uprobe->work, uprobe_free_deferred);
kernel/events/uprobes.c
706
schedule_work(&uprobe->work);
kernel/events/uprobes.c
710
static void hprobe_init_leased(struct hprobe *hprobe, struct uprobe *uprobe, int srcu_idx)
kernel/events/uprobes.c
712
WARN_ON(!uprobe);
kernel/events/uprobes.c
714
hprobe->uprobe = uprobe;
kernel/events/uprobes.c
719
static void hprobe_init_stable(struct hprobe *hprobe, struct uprobe *uprobe)
kernel/events/uprobes.c
721
hprobe->state = uprobe ? HPROBE_STABLE : HPROBE_GONE;
kernel/events/uprobes.c
722
hprobe->uprobe = uprobe;
kernel/events/uprobes.c
735
static inline struct uprobe *hprobe_consume(struct hprobe *hprobe, enum hprobe_state *hstate)
kernel/events/uprobes.c
741
return hprobe->uprobe;
kernel/events/uprobes.c
763
put_uprobe(hprobe->uprobe);
kernel/events/uprobes.c
790
static struct uprobe *hprobe_expire(struct hprobe *hprobe, bool get)
kernel/events/uprobes.c
808
return get ? get_uprobe(hprobe->uprobe) : hprobe->uprobe;
kernel/events/uprobes.c
822
struct uprobe *uprobe = try_get_uprobe(hprobe->uprobe);
kernel/events/uprobes.c
830
if (try_cmpxchg(&hprobe->state, &hstate, uprobe ? HPROBE_STABLE : HPROBE_GONE)) {
kernel/events/uprobes.c
833
return get ? get_uprobe(uprobe) : uprobe;
kernel/events/uprobes.c
840
if (uprobe && !get)
kernel/events/uprobes.c
841
put_uprobe(uprobe);
kernel/events/uprobes.c
850
return uprobe;
kernel/events/uprobes.c
860
const struct uprobe *r)
kernel/events/uprobes.c
878
rb_entry((node), struct uprobe, rb_node)
kernel/events/uprobes.c
893
struct uprobe *u = __node_2_uprobe(a);
kernel/events/uprobes.c
901
static struct uprobe *find_uprobe_rcu(struct inode *inode, loff_t offset)
kernel/events/uprobes.c
93
struct uprobe *uprobe;
kernel/events/uprobes.c
945
static struct uprobe *__insert_uprobe(struct uprobe *uprobe)
kernel/events/uprobes.c
949
node = rb_find_add_rcu(&uprobe->rb_node, &uprobes_tree, __uprobe_cmp);
kernel/events/uprobes.c
951
struct uprobe *u = __node_2_uprobe(node);
kernel/events/uprobes.c
962
return uprobe;
kernel/events/uprobes.c
969
static struct uprobe *insert_uprobe(struct uprobe *uprobe)
kernel/events/uprobes.c
971
struct uprobe *u;
kernel/events/uprobes.c
975
u = __insert_uprobe(uprobe);
kernel/events/uprobes.c
983
ref_ctr_mismatch_warn(struct uprobe *cur_uprobe, struct uprobe *uprobe)
kernel/events/uprobes.c
987
uprobe->inode->i_ino, (unsigned long long) uprobe->offset,
kernel/events/uprobes.c
989
(unsigned long long) uprobe->ref_ctr_offset);
kernel/events/uprobes.c
992
static struct uprobe *alloc_uprobe(struct inode *inode, loff_t offset,
kernel/events/uprobes.c
995
struct uprobe *uprobe, *cur_uprobe;
kernel/events/uprobes.c
997
uprobe = kzalloc_obj(struct uprobe);
kernel/events/uprobes.c
998
if (!uprobe)
kernel/sys_ni.c
396
COND_SYSCALL(uprobe);
kernel/trace/bpf_trace.c
2911
struct uprobe *uprobe;
kernel/trace/bpf_trace.c
2927
struct bpf_uprobe *uprobe;
kernel/trace/bpf_trace.c
2935
uprobe_unregister_nosync(uprobes[i].uprobe, &uprobes[i].consumer);
kernel/trace/bpf_trace.c
3078
static int uprobe_prog_run(struct bpf_uprobe *uprobe,
kernel/trace/bpf_trace.c
3083
struct bpf_uprobe_multi_link *link = uprobe->link;
kernel/trace/bpf_trace.c
3090
.uprobe = uprobe,
kernel/trace/bpf_trace.c
3123
struct bpf_uprobe *uprobe;
kernel/trace/bpf_trace.c
3125
uprobe = container_of(con, struct bpf_uprobe, consumer);
kernel/trace/bpf_trace.c
3126
return uprobe->link->task->mm == mm;
kernel/trace/bpf_trace.c
3133
struct bpf_uprobe *uprobe;
kernel/trace/bpf_trace.c
3136
uprobe = container_of(con, struct bpf_uprobe, consumer);
kernel/trace/bpf_trace.c
3137
ret = uprobe_prog_run(uprobe, instruction_pointer(regs), regs, false, data);
kernel/trace/bpf_trace.c
3138
if (uprobe->session)
kernel/trace/bpf_trace.c
3147
struct bpf_uprobe *uprobe;
kernel/trace/bpf_trace.c
3149
uprobe = container_of(con, struct bpf_uprobe, consumer);
kernel/trace/bpf_trace.c
3150
uprobe_prog_run(uprobe, func, regs, true, data);
kernel/trace/bpf_trace.c
3169
return run_ctx->uprobe->cookie;
kernel/trace/bpf_trace.c
3293
uprobes[i].uprobe = uprobe_register(d_real_inode(link->path.dentry),
kernel/trace/bpf_trace.c
3297
if (IS_ERR(uprobes[i].uprobe)) {
kernel/trace/bpf_trace.c
3298
err = PTR_ERR(uprobes[i].uprobe);
kernel/trace/trace_uprobe.c
1105
struct uprobe *uprobe;
kernel/trace/trace_uprobe.c
1108
uprobe = uprobe_register(inode, tu->offset, tu->ref_ctr_offset, &tu->consumer);
kernel/trace/trace_uprobe.c
1109
if (IS_ERR(uprobe))
kernel/trace/trace_uprobe.c
1110
return PTR_ERR(uprobe);
kernel/trace/trace_uprobe.c
1112
tu->uprobe = uprobe;
kernel/trace/trace_uprobe.c
1125
if (!tu->uprobe)
kernel/trace/trace_uprobe.c
1128
uprobe_unregister_nosync(tu->uprobe, &tu->consumer);
kernel/trace/trace_uprobe.c
1130
tu->uprobe = NULL;
kernel/trace/trace_uprobe.c
1329
ret = uprobe_apply(tu->uprobe, &tu->consumer, false);
kernel/trace/trace_uprobe.c
1353
err = uprobe_apply(tu->uprobe, &tu->consumer, true);
kernel/trace/trace_uprobe.c
65
struct uprobe *uprobe;
tools/bpf/bpftool/link.c
1136
if (!info.perf_event.uprobe.file_name) {
tools/bpf/bpftool/link.c
1137
info.perf_event.uprobe.file_name = ptr_to_u64(&buf);
tools/bpf/bpftool/link.c
1138
info.perf_event.uprobe.name_len = sizeof(buf);
tools/bpf/bpftool/link.c
423
u64_to_ptr(info->perf_event.uprobe.file_name));
tools/bpf/bpftool/link.c
424
jsonw_uint_field(wtr, "offset", info->perf_event.uprobe.offset);
tools/bpf/bpftool/link.c
425
jsonw_uint_field(wtr, "cookie", info->perf_event.uprobe.cookie);
tools/bpf/bpftool/link.c
426
jsonw_uint_field(wtr, "ref_ctr_offset", info->perf_event.uprobe.ref_ctr_offset);
tools/bpf/bpftool/link.c
864
buf = u64_to_ptr(info->perf_event.uprobe.file_name);
tools/bpf/bpftool/link.c
872
printf("%s+%#x ", buf, info->perf_event.uprobe.offset);
tools/bpf/bpftool/link.c
873
if (info->perf_event.uprobe.cookie)
tools/bpf/bpftool/link.c
874
printf("cookie %llu ", info->perf_event.uprobe.cookie);
tools/bpf/bpftool/link.c
875
if (info->perf_event.uprobe.ref_ctr_offset)
tools/bpf/bpftool/link.c
876
printf("ref_ctr_offset 0x%llx ", info->perf_event.uprobe.ref_ctr_offset);
tools/include/uapi/linux/bpf.h
6822
} uprobe; /* BPF_PERF_EVENT_UPROBE, BPF_PERF_EVENT_URETPROBE */
tools/lib/bpf/libbpf.c
11561
static int perf_event_open_probe(bool uprobe, bool retprobe, const char *name,
tools/lib/bpf/libbpf.c
11573
type = uprobe ? determine_uprobe_perf_type()
tools/lib/bpf/libbpf.c
11577
uprobe ? "uprobe" : "kprobe",
tools/lib/bpf/libbpf.c
11582
int bit = uprobe ? determine_uprobe_retprobe_bit()
tools/lib/bpf/libbpf.c
11587
uprobe ? "uprobe" : "kprobe",
tools/perf/util/probe-event.c
2963
static int __open_probe_file_and_namelist(bool uprobe,
tools/perf/util/probe-event.c
2968
fd = probe_file__open(PF_FL_RW | (uprobe ? PF_FL_UPROBE : 0));
tools/perf/util/probe-event.c
907
bool uprobe, struct debuginfo *dinfo)
tools/perf/util/probe-event.c
911
if (uprobe)
tools/perf/util/probe-file.c
75
static void print_open_warning(int err, bool uprobe, bool readwrite)
tools/perf/util/probe-file.c
82
if (print_configure_probe_event(uprobe ? 0 : err, uprobe ? err : 0))
tools/perf/util/probe-file.c
86
tracing_path_mount(), uprobe ? 'u' : 'k',
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
306
link1 = bpf_program__attach_uprobe_multi(skel->progs.uprobe, -1,
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
100
ASSERT_EQ(info.perf_event.uprobe.offset, offset, "uprobe_offset");
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
101
ASSERT_EQ(info.perf_event.uprobe.ref_ctr_offset, ref_ctr_offset, "uprobe_ref_ctr_offset");
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
103
ASSERT_EQ(info.perf_event.uprobe.name_len, strlen(UPROBE_FILE) + 1,
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
105
if (!info.perf_event.uprobe.file_name) {
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
106
info.perf_event.uprobe.file_name = ptr_to_u64(&buf);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
107
info.perf_event.uprobe.name_len = sizeof(buf);
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
111
ASSERT_EQ(info.perf_event.uprobe.cookie, PERF_EVENT_COOKIE, "uprobe_cookie");
tools/testing/selftests/bpf/prog_tests/fill_link_info.c
113
err = strncmp(u64_to_ptr(info.perf_event.uprobe.file_name), UPROBE_FILE,
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
280
skel->links.uprobe = bpf_program__attach_uprobe_multi(skel->progs.uprobe, pid,
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
282
if (!ASSERT_OK_PTR(skel->links.uprobe, "bpf_program__attach_uprobe_multi"))
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
579
skel->links.uprobe = bpf_program__attach_uprobe_multi(skel->progs.uprobe, -1,
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
581
if (!ASSERT_ERR_PTR(skel->links.uprobe, "bpf_program__attach_uprobe_multi")) {
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
582
bpf_link__destroy(skel->links.uprobe);
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
583
skel->links.uprobe = NULL;
tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c
692
prog_fd = bpf_program__fd(skel->progs.uprobe);
tools/testing/selftests/bpf/progs/uprobe_multi.c
85
int uprobe(struct pt_regs *ctx)
tools/testing/selftests/bpf/progs/uprobe_multi_session.c
51
int uprobe(struct pt_regs *ctx)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
623
struct uprobe *uprobe;
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
629
static struct testmod_uprobe uprobe = {
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
638
if (uprobe.uprobe)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
643
if (uprobe.uprobe)
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
646
err = kern_path("/proc/self/exe", LOOKUP_FOLLOW, &uprobe.path);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
650
uprobe.uprobe = uprobe_register(d_real_inode(uprobe.path.dentry),
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
651
offset, 0, &uprobe.consumer);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
652
if (IS_ERR(uprobe.uprobe)) {
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
653
err = PTR_ERR(uprobe.uprobe);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
654
path_put(&uprobe.path);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
655
uprobe.uprobe = NULL;
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
666
if (uprobe.uprobe) {
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
667
uprobe_unregister_nosync(uprobe.uprobe, &uprobe.consumer);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
669
path_put(&uprobe.path);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
670
uprobe.uprobe = NULL;
tools/testing/selftests/bpf/uprobe_multi.c
127
(void)uprobe();