Lines Matching refs:subops

3541 int ftrace_startup_subops(struct ftrace_ops *ops, struct ftrace_ops *subops, int command)  in ftrace_startup_subops()  argument
3553 ftrace_ops_init(subops); in ftrace_startup_subops()
3555 if (WARN_ON_ONCE(subops->flags & FTRACE_OPS_FL_ENABLED)) in ftrace_startup_subops()
3563 if (!subops->func_hash->filter_hash) in ftrace_startup_subops()
3564 subops->func_hash->filter_hash = EMPTY_HASH; in ftrace_startup_subops()
3565 if (!subops->func_hash->notrace_hash) in ftrace_startup_subops()
3566 subops->func_hash->notrace_hash = EMPTY_HASH; in ftrace_startup_subops()
3575 ret = add_first_hash(&filter_hash, &notrace_hash, subops->func_hash); in ftrace_startup_subops()
3584 list_add(&subops->list, &ops->subop_list); in ftrace_startup_subops()
3587 list_del(&subops->list); in ftrace_startup_subops()
3595 subops->flags |= FTRACE_OPS_FL_ENABLED | FTRACE_OPS_FL_SUBOP; in ftrace_startup_subops()
3596 subops->managed = ops; in ftrace_startup_subops()
3610 ret = add_next_hash(&filter_hash, &notrace_hash, ops->func_hash, subops->func_hash); in ftrace_startup_subops()
3614 list_add(&subops->list, &ops->subop_list); in ftrace_startup_subops()
3620 list_del(&subops->list); in ftrace_startup_subops()
3622 subops->flags |= FTRACE_OPS_FL_ENABLED | FTRACE_OPS_FL_SUBOP; in ftrace_startup_subops()
3623 subops->managed = ops; in ftrace_startup_subops()
3632 struct ftrace_ops *subops; in rebuild_hashes() local
3639 list_for_each_entry(subops, &ops->subop_list, list) { in rebuild_hashes()
3644 ret = add_first_hash(filter_hash, notrace_hash, subops->func_hash); in rebuild_hashes()
3650 &temp_hash, subops->func_hash); in rebuild_hashes()
3679 int ftrace_shutdown_subops(struct ftrace_ops *ops, struct ftrace_ops *subops, int command) in ftrace_shutdown_subops() argument
3688 if (WARN_ON_ONCE(!(subops->flags & FTRACE_OPS_FL_ENABLED))) in ftrace_shutdown_subops()
3691 list_del(&subops->list); in ftrace_shutdown_subops()
3698 list_add(&subops->list, &ops->subop_list); in ftrace_shutdown_subops()
3702 subops->flags &= ~FTRACE_OPS_FL_ENABLED; in ftrace_shutdown_subops()
3708 subops->flags &= ~(FTRACE_OPS_FL_ENABLED | FTRACE_OPS_FL_SUBOP); in ftrace_shutdown_subops()
3709 subops->managed = NULL; in ftrace_shutdown_subops()
3721 list_add(&subops->list, &ops->subop_list); in ftrace_shutdown_subops()
3723 subops->flags &= ~(FTRACE_OPS_FL_ENABLED | FTRACE_OPS_FL_SUBOP); in ftrace_shutdown_subops()
3724 subops->managed = NULL; in ftrace_shutdown_subops()
3731 static int ftrace_hash_move_and_update_subops(struct ftrace_ops *subops, in ftrace_hash_move_and_update_subops() argument
3735 struct ftrace_ops *ops = subops->managed; in ftrace_hash_move_and_update_subops()
4428 struct ftrace_ops *subops; in print_subops() local
4431 list_for_each_entry(subops, &ops->subop_list, list) { in print_subops()
4432 if (!((subops->flags & FTRACE_OPS_FL_ENABLED) && in print_subops()
4433 hash_contains_ip(rec->ip, subops->func_hash))) in print_subops()
4440 if (subops->flags & FTRACE_OPS_FL_GRAPH) { in print_subops()
4443 gops = container_of(subops, struct fgraph_ops, ops); in print_subops()
4450 if (subops->trampoline) { in print_subops()
4452 (void *)subops->trampoline, in print_subops()
4453 (void *)subops->func); in print_subops()
4454 add_trampoline_func(m, subops, rec); in print_subops()
4457 (void *)subops->func); in print_subops()
5052 struct ftrace_ops *subops; in ftrace_hash_move_and_update_ops() local
5054 list_for_each_entry(subops, &op->subop_list, list) { in ftrace_hash_move_and_update_ops()
5055 if ((subops->flags & FTRACE_OPS_FL_ENABLED) && in ftrace_hash_move_and_update_ops()
5056 subops->func_hash == ops->func_hash) { in ftrace_hash_move_and_update_ops()
5057 return ftrace_hash_move_and_update_subops(subops, orig_hash, hash); in ftrace_hash_move_and_update_ops()