• Home
  • Raw
  • Download

Lines Matching refs:probe

3283 	struct ftrace_func_probe	*probe;  member
3317 if (!iter->probe) { in t_probe_next()
3319 iter->probe = list_entry(next, struct ftrace_func_probe, list); in t_probe_next()
3325 hash = iter->probe->ops.func_hash->filter_hash; in t_probe_next()
3338 if (iter->probe->list.next == func_probes) in t_probe_next()
3340 next = iter->probe->list.next; in t_probe_next()
3341 iter->probe = list_entry(next, struct ftrace_func_probe, list); in t_probe_next()
3342 hash = iter->probe->ops.func_hash->filter_hash; in t_probe_next()
3385 iter->probe = NULL; in t_probe_start()
3407 struct ftrace_func_probe *probe; in t_probe_show() local
3409 probe = iter->probe; in t_probe_show()
3412 if (WARN_ON_ONCE(!probe || !probe_entry)) in t_probe_show()
3415 probe_ops = probe->probe_ops; in t_probe_show()
3418 return probe_ops->print(m, probe_entry->ip, probe_ops, probe->data); in t_probe_show()
4477 struct ftrace_func_probe *probe; in function_trace_probe_call() local
4479 probe = container_of(op, struct ftrace_func_probe, ops); in function_trace_probe_call()
4480 probe_ops = probe->probe_ops; in function_trace_probe_call()
4488 probe_ops->func(ip, parent_ip, probe->tr, probe_ops, probe->data); in function_trace_probe_call()
4636 static void release_probe(struct ftrace_func_probe *probe) in release_probe() argument
4642 WARN_ON(probe->ref <= 0); in release_probe()
4645 probe->ref--; in release_probe()
4647 if (!probe->ref) { in release_probe()
4648 probe_ops = probe->probe_ops; in release_probe()
4654 probe_ops->free(probe_ops, probe->tr, 0, probe->data); in release_probe()
4655 list_del(&probe->list); in release_probe()
4656 kfree(probe); in release_probe()
4661 static void acquire_probe_locked(struct ftrace_func_probe *probe) in acquire_probe_locked() argument
4667 probe->ref++; in acquire_probe_locked()
4675 struct ftrace_func_probe *probe = NULL, *iter; in register_ftrace_function_probe() local
4697 probe = iter; in register_ftrace_function_probe()
4701 if (!probe) { in register_ftrace_function_probe()
4702 probe = kzalloc(sizeof(*probe), GFP_KERNEL); in register_ftrace_function_probe()
4703 if (!probe) { in register_ftrace_function_probe()
4707 probe->probe_ops = probe_ops; in register_ftrace_function_probe()
4708 probe->ops.func = function_trace_probe_call; in register_ftrace_function_probe()
4709 probe->tr = tr; in register_ftrace_function_probe()
4710 ftrace_ops_init(&probe->ops); in register_ftrace_function_probe()
4711 list_add(&probe->list, &tr->func_probes); in register_ftrace_function_probe()
4714 acquire_probe_locked(probe); in register_ftrace_function_probe()
4722 mutex_lock(&probe->ops.func_hash->regex_lock); in register_ftrace_function_probe()
4724 orig_hash = &probe->ops.func_hash->filter_hash; in register_ftrace_function_probe()
4755 &probe->data); in register_ftrace_function_probe()
4759 0, probe->data); in register_ftrace_function_probe()
4760 probe->data = NULL; in register_ftrace_function_probe()
4776 ret = ftrace_hash_move_and_update_ops(&probe->ops, orig_hash, in register_ftrace_function_probe()
4782 probe->ref += count; in register_ftrace_function_probe()
4784 if (!(probe->ops.flags & FTRACE_OPS_FL_ENABLED)) in register_ftrace_function_probe()
4785 ret = ftrace_startup(&probe->ops, 0); in register_ftrace_function_probe()
4793 mutex_unlock(&probe->ops.func_hash->regex_lock); in register_ftrace_function_probe()
4796 release_probe(probe); in register_ftrace_function_probe()
4809 probe_ops->free(probe_ops, tr, entry->ip, probe->data); in register_ftrace_function_probe()
4819 struct ftrace_func_probe *probe = NULL, *iter; in unregister_ftrace_function_probe_func() local
4851 probe = iter; in unregister_ftrace_function_probe_func()
4855 if (!probe) in unregister_ftrace_function_probe_func()
4859 if (!(probe->ops.flags & FTRACE_OPS_FL_INITIALIZED)) in unregister_ftrace_function_probe_func()
4862 acquire_probe_locked(probe); in unregister_ftrace_function_probe_func()
4866 mutex_lock(&probe->ops.func_hash->regex_lock); in unregister_ftrace_function_probe_func()
4868 orig_hash = &probe->ops.func_hash->filter_hash; in unregister_ftrace_function_probe_func()
4909 WARN_ON(probe->ref < count); in unregister_ftrace_function_probe_func()
4911 probe->ref -= count; in unregister_ftrace_function_probe_func()
4914 ftrace_shutdown(&probe->ops, 0); in unregister_ftrace_function_probe_func()
4916 ret = ftrace_hash_move_and_update_ops(&probe->ops, orig_hash, in unregister_ftrace_function_probe_func()
4921 ftrace_run_modify_code(&probe->ops, FTRACE_UPDATE_CALLS, in unregister_ftrace_function_probe_func()
4928 probe_ops->free(probe_ops, tr, entry->ip, probe->data); in unregister_ftrace_function_probe_func()
4934 mutex_unlock(&probe->ops.func_hash->regex_lock); in unregister_ftrace_function_probe_func()
4937 release_probe(probe); in unregister_ftrace_function_probe_func()
4948 struct ftrace_func_probe *probe, *n; in clear_ftrace_function_probes() local
4950 list_for_each_entry_safe(probe, n, &tr->func_probes, list) in clear_ftrace_function_probes()
4951 unregister_ftrace_function_probe_func(NULL, tr, probe->probe_ops); in clear_ftrace_function_probes()