Home
last modified time | relevance | path

Searched refs:link (Results 1 – 25 of 32) sorted by relevance

12

/kernel/bpf/
Dmprog.c11 struct bpf_link *link = ERR_PTR(-EINVAL); in bpf_mprog_link() local
15 link = bpf_link_by_id(id_or_fd); in bpf_mprog_link()
17 link = bpf_link_get_from_fd(id_or_fd); in bpf_mprog_link()
18 if (IS_ERR(link)) in bpf_mprog_link()
19 return PTR_ERR(link); in bpf_mprog_link()
20 if (type && link->prog->type != type) { in bpf_mprog_link()
21 bpf_link_put(link); in bpf_mprog_link()
25 tuple->link = link; in bpf_mprog_link()
26 tuple->prog = link->prog; in bpf_mprog_link()
48 tuple->link = NULL; in bpf_mprog_prog()
[all …]
Dbpf_iter.c17 struct bpf_link link; member
41 static int prepare_seq_file(struct file *file, struct bpf_iter_link *link,
243 __get_seq_info(struct bpf_iter_link *link) in __get_seq_info() argument
247 if (link->aux.map) { in __get_seq_info()
248 seq_info = link->aux.map->ops->iter_seq_info; in __get_seq_info()
253 return link->tinfo->reg_info->seq_info; in __get_seq_info()
258 struct bpf_iter_link *link = inode->i_private; in iter_open() local
260 return prepare_seq_file(file, link, __get_seq_info(link)); in iter_open()
394 static void bpf_iter_link_release(struct bpf_link *link) in bpf_iter_link_release() argument
397 container_of(link, struct bpf_iter_link, link); in bpf_iter_link_release()
[all …]
Dtcx.c112 if (tuple.link) in tcx_uninstall()
113 tcx_link(tuple.link)->dev = NULL; in tcx_uninstall()
141 static int tcx_link_prog_attach(struct bpf_link *link, u32 flags, u32 id_or_fd, in tcx_link_prog_attach() argument
144 struct tcx_link *tcx = tcx_link(link); in tcx_link_prog_attach()
154 ret = bpf_mprog_attach(entry, &entry_new, link->prog, link, NULL, flags, in tcx_link_prog_attach()
169 static void tcx_link_release(struct bpf_link *link) in tcx_link_release() argument
171 struct tcx_link *tcx = tcx_link(link); in tcx_link_release()
186 ret = bpf_mprog_detach(entry, &entry_new, link->prog, link, 0, 0, 0); in tcx_link_release()
203 static int tcx_link_update(struct bpf_link *link, struct bpf_prog *nprog, in tcx_link_update() argument
206 struct tcx_link *tcx = tcx_link(link); in tcx_link_update()
[all …]
Dtrampoline.c231 struct bpf_tramp_link *link; in bpf_trampoline_get_progs() local
246 hlist_for_each_entry(link, &tr->progs_hlist[kind], tramp_hlist) { in bpf_trampoline_get_progs()
247 *ip_arg |= link->link.prog->call_get_func_ip; in bpf_trampoline_get_progs()
248 *links++ = link; in bpf_trampoline_get_progs()
513 static int __bpf_trampoline_link_prog(struct bpf_tramp_link *link, struct bpf_trampoline *tr) in __bpf_trampoline_link_prog() argument
520 kind = bpf_attach_type_to_tramp(link->link.prog); in __bpf_trampoline_link_prog()
534 tr->extension_prog = link->link.prog; in __bpf_trampoline_link_prog()
536 link->link.prog->bpf_func); in __bpf_trampoline_link_prog()
540 if (!hlist_unhashed(&link->tramp_hlist)) in __bpf_trampoline_link_prog()
544 if (link_exiting->link.prog != link->link.prog) in __bpf_trampoline_link_prog()
[all …]
Dnet_namespace.c13 struct bpf_link link; member
67 struct bpf_netns_link *link) in link_index() argument
73 if (pos == link) in link_index()
97 prog_array->items[i].prog = pos->link.prog; in fill_prog_array()
102 static void bpf_netns_link_release(struct bpf_link *link) in bpf_netns_link_release() argument
105 container_of(link, struct bpf_netns_link, link); in bpf_netns_link_release()
150 static int bpf_netns_link_detach(struct bpf_link *link) in bpf_netns_link_detach() argument
152 bpf_netns_link_release(link); in bpf_netns_link_detach()
156 static void bpf_netns_link_dealloc(struct bpf_link *link) in bpf_netns_link_dealloc() argument
159 container_of(link, struct bpf_netns_link, link); in bpf_netns_link_dealloc()
[all …]
Dsyscall.c2829 void bpf_link_init(struct bpf_link *link, enum bpf_link_type type, in bpf_link_init() argument
2832 atomic64_set(&link->refcnt, 1); in bpf_link_init()
2833 link->type = type; in bpf_link_init()
2834 link->id = 0; in bpf_link_init()
2835 link->ops = ops; in bpf_link_init()
2836 link->prog = prog; in bpf_link_init()
2860 primer->link->prog = NULL; in bpf_link_cleanup()
2866 void bpf_link_inc(struct bpf_link *link) in bpf_link_inc() argument
2868 atomic64_inc(&link->refcnt); in bpf_link_inc()
2873 struct bpf_link *link = container_of(rcu, struct bpf_link, rcu); in bpf_link_defer_dealloc_rcu_gp() local
[all …]
Dbpf_struct_ops.c64 struct bpf_link link; member
336 static void bpf_struct_ops_link_release(struct bpf_link *link) in bpf_struct_ops_link_release() argument
340 static void bpf_struct_ops_link_dealloc(struct bpf_link *link) in bpf_struct_ops_link_dealloc() argument
342 struct bpf_tramp_link *tlink = container_of(link, struct bpf_tramp_link, link); in bpf_struct_ops_link_dealloc()
353 struct bpf_tramp_link *link, in bpf_struct_ops_prepare_trampoline() argument
359 tlinks[BPF_TRAMP_FENTRY].links[0] = link; in bpf_struct_ops_prepare_trampoline()
425 struct bpf_tramp_link *link; in bpf_struct_ops_map_update_elem() local
488 link = kzalloc(sizeof(*link), GFP_USER); in bpf_struct_ops_map_update_elem()
489 if (!link) { in bpf_struct_ops_map_update_elem()
494 bpf_link_init(&link->link, BPF_LINK_TYPE_STRUCT_OPS, in bpf_struct_ops_map_update_elem()
[all …]
Dcgroup.c264 static void bpf_cgroup_link_auto_detach(struct bpf_cgroup_link *link) in bpf_cgroup_link_auto_detach() argument
266 cgroup_put(link->cgroup); in bpf_cgroup_link_auto_detach()
267 link->cgroup = NULL; in bpf_cgroup_link_auto_detach()
299 if (pl->link) { in cgroup_bpf_release()
300 if (pl->link->link.prog->expected_attach_type == BPF_LSM_CGROUP) in cgroup_bpf_release()
301 bpf_trampoline_unlink_cgroup_shim(pl->link->link.prog); in cgroup_bpf_release()
302 bpf_cgroup_link_auto_detach(pl->link); in cgroup_bpf_release()
347 if (pl->link) in prog_list_prog()
348 return pl->link->link.prog; in prog_list_prog()
558 struct bpf_cgroup_link *link, in find_attach_entry() argument
[all …]
Dlink_iter.c16 struct bpf_link *link; in bpf_link_seq_start() local
18 link = bpf_link_get_curr_or_next(&info->link_id); in bpf_link_seq_start()
19 if (!link) in bpf_link_seq_start()
24 return link; in bpf_link_seq_start()
39 __bpf_md_ptr(struct bpf_link *, link);
42 DEFINE_BPF_ITER_FUNC(bpf_link, struct bpf_iter_meta *meta, struct bpf_link *link) in DEFINE_BPF_ITER_FUNC() argument
52 ctx.link = v; in DEFINE_BPF_ITER_FUNC()
95 { offsetof(struct bpf_iter__bpf_link, link),
Dinode.c363 struct bpf_link *link = arg; in bpf_mklink() local
366 bpf_link_is_iter(link) ? in bpf_mklink()
386 char *link = kstrdup(target, GFP_USER | __GFP_NOWARN); in bpf_symlink() local
389 if (!link) in bpf_symlink()
394 kfree(link); in bpf_symlink()
399 inode->i_link = link; in bpf_symlink()
411 .link = simple_link,
417 const char *name, struct bpf_link *link) in bpf_iter_link_pin_kernel() argument
429 ret = bpf_mkobj_ops(dentry, mode, link, &bpf_link_iops, in bpf_iter_link_pin_kernel()
725 bpf_link_inc(objs[i].link); in populate_bpffs()
[all …]
/kernel/trace/
Dbpf_trace.c2510 struct bpf_link link; member
2522 struct bpf_kprobe_multi_link *link; member
2587 static void bpf_kprobe_multi_link_release(struct bpf_link *link) in bpf_kprobe_multi_link_release() argument
2591 kmulti_link = container_of(link, struct bpf_kprobe_multi_link, link); in bpf_kprobe_multi_link_release()
2596 static void bpf_kprobe_multi_link_dealloc(struct bpf_link *link) in bpf_kprobe_multi_link_dealloc() argument
2600 kmulti_link = container_of(link, struct bpf_kprobe_multi_link, link); in bpf_kprobe_multi_link_dealloc()
2607 static int bpf_kprobe_multi_link_fill_link_info(const struct bpf_link *link, in bpf_kprobe_multi_link_fill_link_info() argument
2618 kmulti_link = container_of(link, struct bpf_kprobe_multi_link, link); in bpf_kprobe_multi_link_fill_link_info()
2649 const struct bpf_kprobe_multi_link *link = priv; in bpf_kprobe_multi_cookie_swap() local
2653 cookie_a = link->cookies + (addr_a - link->addrs); in bpf_kprobe_multi_cookie_swap()
[all …]
Dtrace_probe.c296 list_for_each_entry(field, head, link) { in parse_trace_event_arg()
1859 struct event_file_link *link; in trace_probe_add_file() local
1861 link = kmalloc(sizeof(*link), GFP_KERNEL); in trace_probe_add_file()
1862 if (!link) in trace_probe_add_file()
1865 link->file = file; in trace_probe_add_file()
1866 INIT_LIST_HEAD(&link->list); in trace_probe_add_file()
1867 list_add_tail_rcu(&link->list, &tp->event->files); in trace_probe_add_file()
1875 struct event_file_link *link; in trace_probe_get_file_link() local
1877 trace_probe_for_each_link(link, tp) { in trace_probe_get_file_link()
1878 if (link->file == file) in trace_probe_get_file_link()
[all …]
Dtrace_fprobe.c206 struct event_file_link *link; in fentry_trace_func() local
208 trace_probe_for_each_link_rcu(link, &tf->tp) in fentry_trace_func()
209 __fentry_trace_func(tf, entry_ip, regs, link->file); in fentry_trace_func()
250 struct event_file_link *link; in fexit_trace_func() local
252 trace_probe_for_each_link_rcu(link, &tf->tp) in fexit_trace_func()
253 __fexit_trace_func(tf, entry_ip, ret_ip, regs, link->file); in fexit_trace_func()
Dtrace_events_inject.c145 list_for_each_entry(field, head, link) { in trace_get_entry_size()
166 list_for_each_entry(field, head, link) { in trace_alloc_entry()
Dtrace_uprobe.c989 struct event_file_link *link; in uprobe_trace_func() local
995 trace_probe_for_each_link_rcu(link, &tu->tp) in uprobe_trace_func()
996 __uprobe_trace_func(tu, 0, regs, ucb, dsize, link->file); in uprobe_trace_func()
1006 struct event_file_link *link; in uretprobe_trace_func() local
1009 trace_probe_for_each_link_rcu(link, &tu->tp) in uretprobe_trace_func()
1010 __uprobe_trace_func(tu, func, regs, ucb, dsize, link->file); in uretprobe_trace_func()
Dtrace_events_user.c1084 list_for_each_entry_safe(field, next, head, link) { in user_event_destroy_fields()
1085 list_del(&field->link); in user_event_destroy_fields()
1141 list_add(&field->link, &user->fields); in user_event_add_field()
1377 list_for_each_entry_reverse(field, head, link) { in user_event_set_print_fmt()
1389 list_for_each_entry_reverse(field, head, link) { in user_event_set_print_fmt()
1789 list_for_each_entry_reverse(field, head, link) { in user_event_show()
1875 list_for_each_entry_reverse(field, head, link) { in user_fields_match()
Dtrace_kprobe.c1374 struct event_file_link *link; in kprobe_trace_func() local
1376 trace_probe_for_each_link_rcu(link, &tk->tp) in kprobe_trace_func()
1377 __kprobe_trace_func(tk, regs, link->file); in kprobe_trace_func()
1416 struct event_file_link *link; in kretprobe_trace_func() local
1418 trace_probe_for_each_link_rcu(link, &tk->tp) in kretprobe_trace_func()
1419 __kretprobe_trace_func(tk, ri, regs, link->file); in kretprobe_trace_func()
/kernel/
Duser-return-notifier.c18 hlist_add_head(&urn->link, this_cpu_ptr(&return_notifier_list)); in user_return_notifier_register()
28 hlist_del(&urn->link); in user_return_notifier_unregister()
42 hlist_for_each_entry_safe(urn, tmp2, head, link) in fire_user_return_notifiers()
/kernel/cgroup/
Ddebug.c89 struct cgrp_cset_link *link; in current_css_set_cg_links_read() local
100 list_for_each_entry(link, &cset->cgrp_links, cgrp_link) { in current_css_set_cg_links_read()
101 struct cgroup *c = link->cgrp; in current_css_set_cg_links_read()
117 struct cgrp_cset_link *link; in cgroup_css_links_read() local
122 list_for_each_entry(link, &css->cgroup->cset_links, cset_link) { in cgroup_css_links_read()
123 struct css_set *cset = link->cset; in cgroup_css_links_read()
Dcgroup.c613 struct cgrp_cset_link *link; in __cgroup_task_count() local
617 list_for_each_entry(link, &cgrp->cset_links, cset_link) in __cgroup_task_count()
618 count += link->cset->nr_tasks; in __cgroup_task_count()
834 struct cgrp_cset_link *link; in css_set_update_populated() local
838 list_for_each_entry(link, &cset->cgrp_links, cgrp_link) in css_set_update_populated()
839 cgroup_update_populated(link->cgrp, populated); in css_set_update_populated()
929 struct cgrp_cset_link *link, *tmp_link; in put_css_set_locked() local
948 list_for_each_entry_safe(link, tmp_link, &cset->cgrp_links, cgrp_link) { in put_css_set_locked()
949 list_del(&link->cset_link); in put_css_set_locked()
950 list_del(&link->cgrp_link); in put_css_set_locked()
[all …]
/kernel/locking/
Dtest-ww_mutex.c472 struct list_head link; member
495 list_add(&ll->link, &locks); in stress_reorder_work()
503 list_for_each_entry(ll, &locks, link) { in stress_reorder_work()
509 list_for_each_entry_continue_reverse(ln, &locks, link) in stress_reorder_work()
519 list_move(&ll->link, &locks); /* restarts iteration */ in stress_reorder_work()
523 list_for_each_entry(ll, &locks, link) in stress_reorder_work()
530 list_for_each_entry_safe(ll, ln, &locks, link) in stress_reorder_work()
Dlocktorture.c531 struct list_head link; in torture_ww_mutex_lock() member
537 list_add(&locks[0].link, &list); in torture_ww_mutex_lock()
540 list_add(&locks[1].link, &list); in torture_ww_mutex_lock()
543 list_add(&locks[2].link, &list); in torture_ww_mutex_lock()
547 list_for_each_entry(ll, &list, link) { in torture_ww_mutex_lock()
555 list_for_each_entry_continue_reverse(ln, &list, link) in torture_ww_mutex_lock()
562 list_move(&ll->link, &list); in torture_ww_mutex_lock()
/kernel/bpf/preload/
Dbpf_preload_kern.c27 obj[0].link = maps_link; in preload()
29 obj[1].link = progs_link; in preload()
Dbpf_preload.h7 struct bpf_link *link; member
/kernel/sched/
Dtopology.c1312 struct list_head link; member
1344 list_for_each_entry(entry, &asym_cap_list, link) { in asym_cpu_capacity_classify()
1370 list_for_each_entry(entry, &asym_cap_list, link) { in asym_cpu_capacity_update_data()
1379 list_add(&entry->link, &asym_cap_list); in asym_cpu_capacity_update_data()
1394 list_for_each_entry(entry, &asym_cap_list, link) in asym_cpu_capacity_scan()
1400 list_for_each_entry_safe(entry, next, &asym_cap_list, link) { in asym_cpu_capacity_scan()
1402 list_del(&entry->link); in asym_cpu_capacity_scan()
1412 entry = list_first_entry(&asym_cap_list, typeof(*entry), link); in asym_cpu_capacity_scan()
1413 list_del(&entry->link); in asym_cpu_capacity_scan()

12