Lines Matching refs:tk
87 static nokprobe_inline bool trace_kprobe_is_return(struct trace_kprobe *tk) in trace_kprobe_is_return() argument
89 return tk->rp.handler != NULL; in trace_kprobe_is_return()
92 static nokprobe_inline const char *trace_kprobe_symbol(struct trace_kprobe *tk) in trace_kprobe_symbol() argument
94 return tk->symbol ? tk->symbol : "unknown"; in trace_kprobe_symbol()
97 static nokprobe_inline unsigned long trace_kprobe_offset(struct trace_kprobe *tk) in trace_kprobe_offset() argument
99 return tk->rp.kp.offset; in trace_kprobe_offset()
102 static nokprobe_inline bool trace_kprobe_has_gone(struct trace_kprobe *tk) in trace_kprobe_has_gone() argument
104 return kprobe_gone(&tk->rp.kp); in trace_kprobe_has_gone()
107 static nokprobe_inline bool trace_kprobe_within_module(struct trace_kprobe *tk, in trace_kprobe_within_module() argument
111 const char *name = trace_kprobe_symbol(tk); in trace_kprobe_within_module()
117 static nokprobe_inline bool trace_kprobe_module_exist(struct trace_kprobe *tk) in trace_kprobe_module_exist() argument
122 if (!tk->symbol) in trace_kprobe_module_exist()
124 p = strchr(tk->symbol, ':'); in trace_kprobe_module_exist()
129 ret = !!find_module(tk->symbol); in trace_kprobe_module_exist()
135 static inline bool trace_kprobe_module_exist(struct trace_kprobe *tk) in trace_kprobe_module_exist() argument
143 struct trace_kprobe *tk = to_trace_kprobe(ev); in trace_kprobe_is_busy() local
145 return trace_probe_is_enabled(&tk->tp); in trace_kprobe_is_busy()
148 static bool trace_kprobe_match_command_head(struct trace_kprobe *tk, in trace_kprobe_match_command_head() argument
156 if (!tk->symbol) in trace_kprobe_match_command_head()
157 snprintf(buf, sizeof(buf), "0x%p", tk->rp.kp.addr); in trace_kprobe_match_command_head()
158 else if (tk->rp.kp.offset) in trace_kprobe_match_command_head()
160 trace_kprobe_symbol(tk), tk->rp.kp.offset); in trace_kprobe_match_command_head()
162 snprintf(buf, sizeof(buf), "%s", trace_kprobe_symbol(tk)); in trace_kprobe_match_command_head()
167 return trace_probe_match_command_args(&tk->tp, argc, argv); in trace_kprobe_match_command_head()
173 struct trace_kprobe *tk = to_trace_kprobe(ev); in trace_kprobe_match() local
176 strcmp(trace_probe_name(&tk->tp), event) == 0) && in trace_kprobe_match()
177 (!system || strcmp(trace_probe_group_name(&tk->tp), system) == 0) && in trace_kprobe_match()
178 trace_kprobe_match_command_head(tk, argc, argv); in trace_kprobe_match()
181 static nokprobe_inline unsigned long trace_kprobe_nhit(struct trace_kprobe *tk) in trace_kprobe_nhit() argument
187 nhit += *per_cpu_ptr(tk->nhit, cpu); in trace_kprobe_nhit()
192 static nokprobe_inline bool trace_kprobe_is_registered(struct trace_kprobe *tk) in trace_kprobe_is_registered() argument
194 return !(list_empty(&tk->rp.kp.list) && in trace_kprobe_is_registered()
195 hlist_unhashed(&tk->rp.kp.hlist)); in trace_kprobe_is_registered()
200 unsigned long trace_kprobe_address(struct trace_kprobe *tk) in trace_kprobe_address() argument
204 if (tk->symbol) { in trace_kprobe_address()
206 kallsyms_lookup_name(trace_kprobe_symbol(tk)); in trace_kprobe_address()
208 addr += tk->rp.kp.offset; in trace_kprobe_address()
210 addr = (unsigned long)tk->rp.kp.addr; in trace_kprobe_address()
229 struct trace_kprobe *tk = trace_kprobe_primary_from_call(call); in trace_kprobe_on_func_entry() local
231 return tk ? (kprobe_on_func_entry(tk->rp.kp.addr, in trace_kprobe_on_func_entry()
232 tk->rp.kp.addr ? NULL : tk->rp.kp.symbol_name, in trace_kprobe_on_func_entry()
233 tk->rp.kp.addr ? 0 : tk->rp.kp.offset) == 0) : false; in trace_kprobe_on_func_entry()
238 struct trace_kprobe *tk = trace_kprobe_primary_from_call(call); in trace_kprobe_error_injectable() local
240 return tk ? within_error_injection_list(trace_kprobe_address(tk)) : in trace_kprobe_error_injectable()
244 static int register_kprobe_event(struct trace_kprobe *tk);
245 static int unregister_kprobe_event(struct trace_kprobe *tk);
251 static void free_trace_kprobe(struct trace_kprobe *tk) in free_trace_kprobe() argument
253 if (tk) { in free_trace_kprobe()
254 trace_probe_cleanup(&tk->tp); in free_trace_kprobe()
255 kfree(tk->symbol); in free_trace_kprobe()
256 free_percpu(tk->nhit); in free_trace_kprobe()
257 kfree(tk); in free_trace_kprobe()
275 struct trace_kprobe *tk __free(free_trace_kprobe) = NULL; in alloc_trace_kprobe()
278 tk = kzalloc_flex(*tk, tp.args, nargs); in alloc_trace_kprobe()
279 if (!tk) in alloc_trace_kprobe()
282 tk->nhit = alloc_percpu(unsigned long); in alloc_trace_kprobe()
283 if (!tk->nhit) in alloc_trace_kprobe()
287 tk->symbol = kstrdup(symbol, GFP_KERNEL); in alloc_trace_kprobe()
288 if (!tk->symbol) in alloc_trace_kprobe()
290 tk->rp.kp.symbol_name = tk->symbol; in alloc_trace_kprobe()
291 tk->rp.kp.offset = offs; in alloc_trace_kprobe()
293 tk->rp.kp.addr = addr; in alloc_trace_kprobe()
296 tk->rp.handler = kretprobe_dispatcher; in alloc_trace_kprobe()
298 tk->rp.kp.pre_handler = kprobe_dispatcher; in alloc_trace_kprobe()
300 tk->rp.maxactive = maxactive; in alloc_trace_kprobe()
301 INIT_HLIST_NODE(&tk->rp.kp.hlist); in alloc_trace_kprobe()
302 INIT_LIST_HEAD(&tk->rp.kp.list); in alloc_trace_kprobe()
304 ret = trace_probe_init(&tk->tp, event, group, false, nargs); in alloc_trace_kprobe()
308 dyn_event_init(&tk->devent, &trace_kprobe_ops); in alloc_trace_kprobe()
309 return_ptr(tk); in alloc_trace_kprobe()
316 struct trace_kprobe *tk; in find_trace_kprobe() local
318 for_each_trace_kprobe(tk, pos) in find_trace_kprobe()
319 if (strcmp(trace_probe_name(&tk->tp), event) == 0 && in find_trace_kprobe()
320 strcmp(trace_probe_group_name(&tk->tp), group) == 0) in find_trace_kprobe()
321 return tk; in find_trace_kprobe()
325 static inline int __enable_trace_kprobe(struct trace_kprobe *tk) in __enable_trace_kprobe() argument
329 if (trace_kprobe_is_registered(tk) && !trace_kprobe_has_gone(tk)) { in __enable_trace_kprobe()
330 if (trace_kprobe_is_return(tk)) in __enable_trace_kprobe()
331 ret = enable_kretprobe(&tk->rp); in __enable_trace_kprobe()
333 ret = enable_kprobe(&tk->rp.kp); in __enable_trace_kprobe()
341 struct trace_kprobe *tk; in __disable_trace_kprobe() local
343 list_for_each_entry(tk, trace_probe_probe_list(tp), tp.list) { in __disable_trace_kprobe()
344 if (!trace_kprobe_is_registered(tk)) in __disable_trace_kprobe()
346 if (trace_kprobe_is_return(tk)) in __disable_trace_kprobe()
347 disable_kretprobe(&tk->rp); in __disable_trace_kprobe()
349 disable_kprobe(&tk->rp.kp); in __disable_trace_kprobe()
361 struct trace_kprobe *tk; in enable_trace_kprobe() local
381 list_for_each_entry(tk, trace_probe_probe_list(tp), tp.list) { in enable_trace_kprobe()
382 if (trace_kprobe_has_gone(tk)) in enable_trace_kprobe()
384 ret = __enable_trace_kprobe(tk); in enable_trace_kprobe()
460 static bool within_notrace_func(struct trace_kprobe *tk) in within_notrace_func() argument
462 unsigned long addr = trace_kprobe_address(tk); in within_notrace_func()
482 #define within_notrace_func(tk) (false) argument
486 static int __register_trace_kprobe(struct trace_kprobe *tk) in __register_trace_kprobe() argument
494 if (trace_kprobe_is_registered(tk)) in __register_trace_kprobe()
497 if (within_notrace_func(tk)) { in __register_trace_kprobe()
499 (void *)trace_kprobe_address(tk)); in __register_trace_kprobe()
503 for (i = 0; i < tk->tp.nr_args; i++) { in __register_trace_kprobe()
504 ret = traceprobe_update_arg(&tk->tp.args[i]); in __register_trace_kprobe()
510 if (trace_probe_is_enabled(&tk->tp)) in __register_trace_kprobe()
511 tk->rp.kp.flags &= ~KPROBE_FLAG_DISABLED; in __register_trace_kprobe()
513 tk->rp.kp.flags |= KPROBE_FLAG_DISABLED; in __register_trace_kprobe()
515 if (trace_kprobe_is_return(tk)) in __register_trace_kprobe()
516 ret = register_kretprobe(&tk->rp); in __register_trace_kprobe()
518 ret = register_kprobe(&tk->rp.kp); in __register_trace_kprobe()
524 static void __unregister_trace_kprobe(struct trace_kprobe *tk) in __unregister_trace_kprobe() argument
526 if (trace_kprobe_is_registered(tk)) { in __unregister_trace_kprobe()
527 if (trace_kprobe_is_return(tk)) in __unregister_trace_kprobe()
528 unregister_kretprobe(&tk->rp); in __unregister_trace_kprobe()
530 unregister_kprobe(&tk->rp.kp); in __unregister_trace_kprobe()
532 INIT_HLIST_NODE(&tk->rp.kp.hlist); in __unregister_trace_kprobe()
533 INIT_LIST_HEAD(&tk->rp.kp.list); in __unregister_trace_kprobe()
534 if (tk->rp.kp.symbol_name) in __unregister_trace_kprobe()
535 tk->rp.kp.addr = NULL; in __unregister_trace_kprobe()
540 static int unregister_trace_kprobe(struct trace_kprobe *tk) in unregister_trace_kprobe() argument
543 if (trace_probe_has_sibling(&tk->tp)) in unregister_trace_kprobe()
547 if (trace_probe_is_enabled(&tk->tp)) in unregister_trace_kprobe()
551 if (trace_event_dyn_busy(trace_probe_event_call(&tk->tp))) in unregister_trace_kprobe()
555 if (unregister_kprobe_event(tk)) in unregister_trace_kprobe()
559 __unregister_trace_kprobe(tk); in unregister_trace_kprobe()
560 dyn_event_remove(&tk->devent); in unregister_trace_kprobe()
561 trace_probe_unlink(&tk->tp); in unregister_trace_kprobe()
595 static int append_trace_kprobe(struct trace_kprobe *tk, struct trace_kprobe *to) in append_trace_kprobe() argument
599 ret = trace_probe_compare_arg_type(&tk->tp, &to->tp); in append_trace_kprobe()
606 if (trace_kprobe_has_same_kprobe(to, tk)) { in append_trace_kprobe()
613 ret = trace_probe_append(&tk->tp, &to->tp); in append_trace_kprobe()
618 ret = __register_trace_kprobe(tk); in append_trace_kprobe()
619 if (ret == -ENOENT && !trace_kprobe_module_exist(tk)) { in append_trace_kprobe()
625 trace_probe_unlink(&tk->tp); in append_trace_kprobe()
627 dyn_event_add(&tk->devent, trace_probe_event_call(&tk->tp)); in append_trace_kprobe()
633 static int register_trace_kprobe(struct trace_kprobe *tk) in register_trace_kprobe() argument
640 old_tk = find_trace_kprobe(trace_probe_name(&tk->tp), in register_trace_kprobe()
641 trace_probe_group_name(&tk->tp)); in register_trace_kprobe()
643 if (trace_kprobe_is_return(tk) != trace_kprobe_is_return(old_tk)) { in register_trace_kprobe()
648 return append_trace_kprobe(tk, old_tk); in register_trace_kprobe()
652 ret = register_kprobe_event(tk); in register_trace_kprobe()
663 ret = __register_trace_kprobe(tk); in register_trace_kprobe()
664 if (ret == -ENOENT && !trace_kprobe_module_exist(tk)) { in register_trace_kprobe()
670 unregister_kprobe_event(tk); in register_trace_kprobe()
672 dyn_event_add(&tk->devent, trace_probe_event_call(&tk->tp)); in register_trace_kprobe()
680 static int register_module_trace_kprobe(struct module *mod, struct trace_kprobe *tk) in register_module_trace_kprobe() argument
685 p = strchr(trace_kprobe_symbol(tk), ':'); in register_module_trace_kprobe()
689 ret = __register_trace_kprobe(tk); in register_module_trace_kprobe()
699 struct trace_kprobe *tk; in trace_kprobe_module_callback() local
707 for_each_trace_kprobe(tk, pos) { in trace_kprobe_module_callback()
708 if (trace_kprobe_within_module(tk, mod)) { in trace_kprobe_module_callback()
710 __unregister_trace_kprobe(tk); in trace_kprobe_module_callback()
711 ret = register_module_trace_kprobe(mod, tk); in trace_kprobe_module_callback()
714 trace_probe_name(&tk->tp), in trace_kprobe_module_callback()
864 struct trace_kprobe *tk __free(free_trace_kprobe) = NULL; in trace_kprobe_create_internal()
1032 tk = alloc_trace_kprobe(group, event, addr, symbol, offset, maxactive, in trace_kprobe_create_internal()
1034 if (IS_ERR(tk)) { in trace_kprobe_create_internal()
1035 ret = PTR_ERR(tk); in trace_kprobe_create_internal()
1045 ret = traceprobe_parse_probe_arg(&tk->tp, i, argv[i], ctx); in trace_kprobe_create_internal()
1050 if (is_return && tk->tp.entry_arg) { in trace_kprobe_create_internal()
1051 tk->rp.entry_handler = trace_kprobe_entry_handler; in trace_kprobe_create_internal()
1052 tk->rp.data_size = traceprobe_get_entry_data_size(&tk->tp); in trace_kprobe_create_internal()
1056 ret = traceprobe_set_print_fmt(&tk->tp, ptype); in trace_kprobe_create_internal()
1060 ret = register_trace_kprobe(tk); in trace_kprobe_create_internal()
1075 tk = NULL; in trace_kprobe_create_internal()
1283 struct trace_kprobe *tk = to_trace_kprobe(ev); in trace_kprobe_release() local
1284 int ret = unregister_trace_kprobe(tk); in trace_kprobe_release()
1287 free_trace_kprobe(tk); in trace_kprobe_release()
1293 struct trace_kprobe *tk = to_trace_kprobe(ev); in trace_kprobe_show() local
1296 seq_putc(m, trace_kprobe_is_return(tk) ? 'r' : 'p'); in trace_kprobe_show()
1297 if (trace_kprobe_is_return(tk) && tk->rp.maxactive) in trace_kprobe_show()
1298 seq_printf(m, "%d", tk->rp.maxactive); in trace_kprobe_show()
1299 seq_printf(m, ":%s/%s", trace_probe_group_name(&tk->tp), in trace_kprobe_show()
1300 trace_probe_name(&tk->tp)); in trace_kprobe_show()
1302 if (!tk->symbol) in trace_kprobe_show()
1303 seq_printf(m, " 0x%p", tk->rp.kp.addr); in trace_kprobe_show()
1304 else if (tk->rp.kp.offset) in trace_kprobe_show()
1305 seq_printf(m, " %s+%u", trace_kprobe_symbol(tk), in trace_kprobe_show()
1306 tk->rp.kp.offset); in trace_kprobe_show()
1308 seq_printf(m, " %s", trace_kprobe_symbol(tk)); in trace_kprobe_show()
1310 for (i = 0; i < tk->tp.nr_args; i++) in trace_kprobe_show()
1311 seq_printf(m, " %s=%s", tk->tp.args[i].name, tk->tp.args[i].comm); in trace_kprobe_show()
1367 static unsigned long trace_kprobe_missed(struct trace_kprobe *tk) in trace_kprobe_missed() argument
1369 return trace_kprobe_is_return(tk) ? in trace_kprobe_missed()
1370 tk->rp.kp.nmissed + tk->rp.nmissed : tk->rp.kp.nmissed; in trace_kprobe_missed()
1377 struct trace_kprobe *tk; in probes_profile_seq_show() local
1383 tk = to_trace_kprobe(ev); in probes_profile_seq_show()
1384 nmissed = trace_kprobe_missed(tk); in probes_profile_seq_show()
1386 trace_probe_name(&tk->tp), in probes_profile_seq_show()
1387 trace_kprobe_nhit(tk), in probes_profile_seq_show()
1467 __kprobe_trace_func(struct trace_kprobe *tk, struct pt_regs *regs, in NOKPROBE_SYMBOL()
1471 struct trace_event_call *call = trace_probe_event_call(&tk->tp); in NOKPROBE_SYMBOL()
1480 dsize = __get_data_size(&tk->tp, regs, NULL); in NOKPROBE_SYMBOL()
1483 sizeof(*entry) + tk->tp.size + dsize); in NOKPROBE_SYMBOL()
1488 entry->ip = (unsigned long)tk->rp.kp.addr; in NOKPROBE_SYMBOL()
1489 store_trace_args(&entry[1], &tk->tp, regs, NULL, sizeof(*entry), dsize); in NOKPROBE_SYMBOL()
1495 kprobe_trace_func(struct trace_kprobe *tk, struct pt_regs *regs) in kprobe_trace_func() argument
1499 trace_probe_for_each_link_rcu(link, &tk->tp) in kprobe_trace_func()
1500 __kprobe_trace_func(tk, regs, link->file); in kprobe_trace_func()
1510 struct trace_kprobe *tk; in trace_kprobe_entry_handler() local
1520 tk = container_of(rp, struct trace_kprobe, rp); in trace_kprobe_entry_handler()
1523 if (tk->tp.entry_arg) in trace_kprobe_entry_handler()
1524 store_trace_entry_data(ri->data, &tk->tp, regs); in trace_kprobe_entry_handler()
1531 __kretprobe_trace_func(struct trace_kprobe *tk, struct kretprobe_instance *ri, in __kretprobe_trace_func() argument
1537 struct trace_event_call *call = trace_probe_event_call(&tk->tp); in __kretprobe_trace_func()
1545 dsize = __get_data_size(&tk->tp, regs, ri->data); in __kretprobe_trace_func()
1548 sizeof(*entry) + tk->tp.size + dsize); in __kretprobe_trace_func()
1553 entry->func = (unsigned long)tk->rp.kp.addr; in __kretprobe_trace_func()
1555 store_trace_args(&entry[1], &tk->tp, regs, ri->data, sizeof(*entry), dsize); in __kretprobe_trace_func()
1561 kretprobe_trace_func(struct trace_kprobe *tk, struct kretprobe_instance *ri, in kretprobe_trace_func() argument
1566 trace_probe_for_each_link_rcu(link, &tk->tp) in kretprobe_trace_func()
1567 __kretprobe_trace_func(tk, ri, regs, link->file); in kretprobe_trace_func()
1674 kprobe_perf_func(struct trace_kprobe *tk, struct pt_regs *regs) in kprobe_perf_func() argument
1676 struct trace_event_call *call = trace_probe_event_call(&tk->tp); in kprobe_perf_func()
1703 dsize = __get_data_size(&tk->tp, regs, NULL); in kprobe_perf_func()
1704 __size = sizeof(*entry) + tk->tp.size + dsize; in kprobe_perf_func()
1712 entry->ip = (unsigned long)tk->rp.kp.addr; in kprobe_perf_func()
1714 store_trace_args(&entry[1], &tk->tp, regs, NULL, sizeof(*entry), dsize); in kprobe_perf_func()
1723 kretprobe_perf_func(struct trace_kprobe *tk, struct kretprobe_instance *ri, in kretprobe_perf_func() argument
1726 struct trace_event_call *call = trace_probe_event_call(&tk->tp); in kretprobe_perf_func()
1739 dsize = __get_data_size(&tk->tp, regs, ri->data); in kretprobe_perf_func()
1740 __size = sizeof(*entry) + tk->tp.size + dsize; in kretprobe_perf_func()
1748 entry->func = (unsigned long)tk->rp.kp.addr; in kretprobe_perf_func()
1750 store_trace_args(&entry[1], &tk->tp, regs, ri->data, sizeof(*entry), dsize); in kretprobe_perf_func()
1763 struct trace_kprobe *tk; in bpf_get_kprobe_info() local
1766 tk = find_trace_kprobe(pevent, group); in bpf_get_kprobe_info()
1768 tk = trace_kprobe_primary_from_call(event->tp_event); in bpf_get_kprobe_info()
1769 if (!tk) in bpf_get_kprobe_info()
1772 *fd_type = trace_kprobe_is_return(tk) ? BPF_FD_TYPE_KRETPROBE in bpf_get_kprobe_info()
1774 *probe_offset = tk->rp.kp.offset; in bpf_get_kprobe_info()
1776 (unsigned long)tk->rp.kp.addr : 0; in bpf_get_kprobe_info()
1777 *symbol = tk->symbol; in bpf_get_kprobe_info()
1779 *missed = trace_kprobe_missed(tk); in bpf_get_kprobe_info()
1818 struct trace_kprobe *tk = container_of(kp, struct trace_kprobe, rp.kp); in kprobe_dispatcher() local
1819 unsigned int flags = trace_probe_load_flag(&tk->tp); in kprobe_dispatcher()
1822 raw_cpu_inc(*tk->nhit); in kprobe_dispatcher()
1825 kprobe_trace_func(tk, regs); in kprobe_dispatcher()
1828 ret = kprobe_perf_func(tk, regs); in kprobe_dispatcher()
1838 struct trace_kprobe *tk; in kretprobe_dispatcher() local
1849 tk = container_of(rp, struct trace_kprobe, rp); in kretprobe_dispatcher()
1850 raw_cpu_inc(*tk->nhit); in kretprobe_dispatcher()
1852 flags = trace_probe_load_flag(&tk->tp); in kretprobe_dispatcher()
1854 kretprobe_trace_func(tk, ri, regs); in kretprobe_dispatcher()
1857 kretprobe_perf_func(tk, ri, regs); in kretprobe_dispatcher()
1883 static inline void init_trace_event_call(struct trace_kprobe *tk) in init_trace_event_call() argument
1885 struct trace_event_call *call = trace_probe_event_call(&tk->tp); in init_trace_event_call()
1887 if (trace_kprobe_is_return(tk)) { in init_trace_event_call()
1899 static int register_kprobe_event(struct trace_kprobe *tk) in register_kprobe_event() argument
1901 init_trace_event_call(tk); in register_kprobe_event()
1903 return trace_probe_register_event_call(&tk->tp); in register_kprobe_event()
1906 static int unregister_kprobe_event(struct trace_kprobe *tk) in unregister_kprobe_event() argument
1908 return trace_probe_unregister_event_call(&tk->tp); in unregister_kprobe_event()
1919 struct trace_kprobe *tk __free(free_trace_kprobe) = NULL; in create_local_trace_kprobe()
1936 tk = alloc_trace_kprobe(KPROBE_EVENT_SYSTEM, event, (void *)addr, func, in create_local_trace_kprobe()
1940 if (IS_ERR(tk)) { in create_local_trace_kprobe()
1942 (int)PTR_ERR(tk)); in create_local_trace_kprobe()
1943 return ERR_CAST(tk); in create_local_trace_kprobe()
1946 init_trace_event_call(tk); in create_local_trace_kprobe()
1948 ptype = trace_kprobe_is_return(tk) ? in create_local_trace_kprobe()
1950 if (traceprobe_set_print_fmt(&tk->tp, ptype) < 0) in create_local_trace_kprobe()
1953 ret = __register_trace_kprobe(tk); in create_local_trace_kprobe()
1957 return trace_probe_event_call(&(no_free_ptr(tk)->tp)); in create_local_trace_kprobe()
1962 struct trace_kprobe *tk; in destroy_local_trace_kprobe() local
1964 tk = trace_kprobe_primary_from_call(event_call); in destroy_local_trace_kprobe()
1965 if (unlikely(!tk)) in destroy_local_trace_kprobe()
1968 if (trace_probe_is_enabled(&tk->tp)) { in destroy_local_trace_kprobe()
1973 __unregister_trace_kprobe(tk); in destroy_local_trace_kprobe()
1975 free_trace_kprobe(tk); in destroy_local_trace_kprobe()
1983 struct trace_kprobe *tk; in enable_boot_kprobe_events() local
1990 for_each_trace_kprobe(tk, pos) { in enable_boot_kprobe_events()
1992 if (file->event_call == trace_probe_event_call(&tk->tp)) in enable_boot_kprobe_events()
2068 find_trace_probe_file(struct trace_kprobe *tk, struct trace_array *tr) in find_trace_probe_file() argument
2073 if (file->event_call == trace_probe_event_call(&tk->tp)) in find_trace_probe_file()
2087 struct trace_kprobe *tk; in kprobe_trace_self_tests_init() local
2105 tk = find_trace_kprobe("testprobe", KPROBE_EVENT_SYSTEM); in kprobe_trace_self_tests_init()
2106 if (WARN_ONCE(tk == NULL, "error on probing function entry.")) { in kprobe_trace_self_tests_init()
2109 file = find_trace_probe_file(tk, top_trace_array()); in kprobe_trace_self_tests_init()
2114 trace_probe_event_call(&tk->tp), file); in kprobe_trace_self_tests_init()
2123 tk = find_trace_kprobe("testprobe2", KPROBE_EVENT_SYSTEM); in kprobe_trace_self_tests_init()
2124 if (WARN_ONCE(tk == NULL, "error on getting 2nd new probe.")) { in kprobe_trace_self_tests_init()
2127 file = find_trace_probe_file(tk, top_trace_array()); in kprobe_trace_self_tests_init()
2132 trace_probe_event_call(&tk->tp), file); in kprobe_trace_self_tests_init()
2150 tk = find_trace_kprobe("testprobe", KPROBE_EVENT_SYSTEM); in kprobe_trace_self_tests_init()
2151 if (WARN_ONCE(tk == NULL, "error on getting test probe.")) { in kprobe_trace_self_tests_init()
2154 if (WARN_ONCE(trace_kprobe_nhit(tk) != 1, in kprobe_trace_self_tests_init()
2158 file = find_trace_probe_file(tk, top_trace_array()); in kprobe_trace_self_tests_init()
2163 trace_probe_event_call(&tk->tp), file); in kprobe_trace_self_tests_init()
2166 tk = find_trace_kprobe("testprobe2", KPROBE_EVENT_SYSTEM); in kprobe_trace_self_tests_init()
2167 if (WARN_ONCE(tk == NULL, "error on getting 2nd test probe.")) { in kprobe_trace_self_tests_init()
2170 if (WARN_ONCE(trace_kprobe_nhit(tk) != 1, in kprobe_trace_self_tests_init()
2174 file = find_trace_probe_file(tk, top_trace_array()); in kprobe_trace_self_tests_init()
2179 trace_probe_event_call(&tk->tp), file); in kprobe_trace_self_tests_init()