Lines Matching refs:subops

3495 int ftrace_startup_subops(struct ftrace_ops *ops, struct ftrace_ops *subops, int command)  in ftrace_startup_subops()  argument
3507 ftrace_ops_init(subops); in ftrace_startup_subops()
3509 if (WARN_ON_ONCE(subops->flags & FTRACE_OPS_FL_ENABLED)) in ftrace_startup_subops()
3517 if (!subops->func_hash->filter_hash) in ftrace_startup_subops()
3518 subops->func_hash->filter_hash = EMPTY_HASH; in ftrace_startup_subops()
3519 if (!subops->func_hash->notrace_hash) in ftrace_startup_subops()
3520 subops->func_hash->notrace_hash = EMPTY_HASH; in ftrace_startup_subops()
3529 ret = add_first_hash(&filter_hash, &notrace_hash, subops->func_hash); in ftrace_startup_subops()
3538 list_add(&subops->list, &ops->subop_list); in ftrace_startup_subops()
3541 list_del(&subops->list); in ftrace_startup_subops()
3549 subops->flags |= FTRACE_OPS_FL_ENABLED | FTRACE_OPS_FL_SUBOP; in ftrace_startup_subops()
3550 subops->managed = ops; in ftrace_startup_subops()
3564 ret = add_next_hash(&filter_hash, &notrace_hash, ops->func_hash, subops->func_hash); in ftrace_startup_subops()
3568 list_add(&subops->list, &ops->subop_list); in ftrace_startup_subops()
3574 list_del(&subops->list); in ftrace_startup_subops()
3576 subops->flags |= FTRACE_OPS_FL_ENABLED | FTRACE_OPS_FL_SUBOP; in ftrace_startup_subops()
3577 subops->managed = ops; in ftrace_startup_subops()
3586 struct ftrace_ops *subops; in rebuild_hashes() local
3593 list_for_each_entry(subops, &ops->subop_list, list) { in rebuild_hashes()
3598 ret = add_first_hash(filter_hash, notrace_hash, subops->func_hash); in rebuild_hashes()
3604 &temp_hash, subops->func_hash); in rebuild_hashes()
3633 int ftrace_shutdown_subops(struct ftrace_ops *ops, struct ftrace_ops *subops, int command) in ftrace_shutdown_subops() argument
3642 if (WARN_ON_ONCE(!(subops->flags & FTRACE_OPS_FL_ENABLED))) in ftrace_shutdown_subops()
3645 list_del(&subops->list); in ftrace_shutdown_subops()
3652 list_add(&subops->list, &ops->subop_list); in ftrace_shutdown_subops()
3656 subops->flags &= ~FTRACE_OPS_FL_ENABLED; in ftrace_shutdown_subops()
3662 subops->flags &= ~(FTRACE_OPS_FL_ENABLED | FTRACE_OPS_FL_SUBOP); in ftrace_shutdown_subops()
3663 subops->managed = NULL; in ftrace_shutdown_subops()
3675 list_add(&subops->list, &ops->subop_list); in ftrace_shutdown_subops()
3677 subops->flags &= ~(FTRACE_OPS_FL_ENABLED | FTRACE_OPS_FL_SUBOP); in ftrace_shutdown_subops()
3678 subops->managed = NULL; in ftrace_shutdown_subops()
3685 static int ftrace_hash_move_and_update_subops(struct ftrace_ops *subops, in ftrace_hash_move_and_update_subops() argument
3689 struct ftrace_ops *ops = subops->managed; in ftrace_hash_move_and_update_subops()
4957 struct ftrace_ops *subops; in ftrace_hash_move_and_update_ops() local
4959 list_for_each_entry(subops, &op->subop_list, list) { in ftrace_hash_move_and_update_ops()
4960 if ((subops->flags & FTRACE_OPS_FL_ENABLED) && in ftrace_hash_move_and_update_ops()
4961 subops->func_hash == ops->func_hash) { in ftrace_hash_move_and_update_ops()
4962 return ftrace_hash_move_and_update_subops(subops, orig_hash, hash); in ftrace_hash_move_and_update_ops()