Lines Matching refs:inst
67 static void crypto_free_instance(struct crypto_instance *inst) in crypto_free_instance() argument
69 inst->alg.cra_type->free(inst); in crypto_free_instance()
76 struct crypto_instance *inst; in crypto_destroy_instance_workfn() local
81 hlist_for_each_entry_safe(inst, n, &tmpl->dead, list) { in crypto_destroy_instance_workfn()
82 if (refcount_read(&inst->alg.cra_refcnt) != -1) in crypto_destroy_instance_workfn()
84 hlist_del(&inst->list); in crypto_destroy_instance_workfn()
85 hlist_add_head(&inst->list, &list); in crypto_destroy_instance_workfn()
89 hlist_for_each_entry_safe(inst, n, &list, list) in crypto_destroy_instance_workfn()
90 crypto_free_instance(inst); in crypto_destroy_instance_workfn()
95 struct crypto_instance *inst = container_of(alg, in crypto_destroy_instance() local
98 struct crypto_template *tmpl = inst->tmpl; in crypto_destroy_instance()
134 return &n->inst->alg.cra_users; in crypto_more_spawns()
137 static void crypto_remove_instance(struct crypto_instance *inst, in crypto_remove_instance() argument
140 struct crypto_template *tmpl = inst->tmpl; in crypto_remove_instance()
142 if (crypto_is_dead(&inst->alg)) in crypto_remove_instance()
145 inst->alg.cra_flags |= CRYPTO_ALG_DEAD; in crypto_remove_instance()
150 list_del_init(&inst->alg.cra_list); in crypto_remove_instance()
151 hlist_del(&inst->list); in crypto_remove_instance()
152 hlist_add_head(&inst->list, &tmpl->dead); in crypto_remove_instance()
154 BUG_ON(!list_empty(&inst->alg.cra_users)); in crypto_remove_instance()
156 crypto_alg_put(&inst->alg); in crypto_remove_instance()
191 struct crypto_instance *inst; in crypto_remove_spawns() local
195 inst = spawn->inst; in crypto_remove_spawns()
198 spawn->dead = !spawn->registered || &inst->alg != nalg; in crypto_remove_spawns()
203 BUG_ON(&inst->alg == alg); in crypto_remove_spawns()
205 if (&inst->alg == nalg) in crypto_remove_spawns()
208 spawns = &inst->alg.cra_users; in crypto_remove_spawns()
240 crypto_remove_instance(spawn->inst, list); in crypto_remove_spawns()
581 struct crypto_instance *inst; in crypto_unregister_template() local
592 hlist_for_each_entry(inst, list, list) { in crypto_unregister_template()
593 int err = crypto_remove_alg(&inst->alg, &users); in crypto_unregister_template()
600 hlist_for_each_entry_safe(inst, n, list, list) { in crypto_unregister_template()
601 BUG_ON(refcount_read(&inst->alg.cra_refcnt) != 1); in crypto_unregister_template()
602 crypto_free_instance(inst); in crypto_unregister_template()
646 struct crypto_instance *inst) in crypto_register_instance() argument
654 err = crypto_check_alg(&inst->alg); in crypto_register_instance()
658 inst->alg.cra_module = tmpl->module; in crypto_register_instance()
659 inst->alg.cra_flags |= CRYPTO_ALG_INSTANCE; in crypto_register_instance()
660 inst->alg.cra_destroy = crypto_destroy_instance; in crypto_register_instance()
665 for (spawn = inst->spawns; spawn;) { in crypto_register_instance()
672 spawn->inst = inst; in crypto_register_instance()
682 inst->alg.cra_flags |= (fips_internal & CRYPTO_ALG_FIPS_INTERNAL); in crypto_register_instance()
684 larval = __crypto_register_alg(&inst->alg, &algs_to_put); in crypto_register_instance()
690 hlist_add_head(&inst->list, &tmpl->instances); in crypto_register_instance()
691 inst->tmpl = tmpl; in crypto_register_instance()
708 void crypto_unregister_instance(struct crypto_instance *inst) in crypto_unregister_instance() argument
714 crypto_remove_spawns(&inst->alg, &list, NULL); in crypto_unregister_instance()
715 crypto_remove_instance(inst, &list); in crypto_unregister_instance()
723 int crypto_grab_spawn(struct crypto_spawn *spawn, struct crypto_instance *inst, in crypto_grab_spawn() argument
729 if (WARN_ON_ONCE(inst == NULL)) in crypto_grab_spawn()
746 spawn->next = inst->spawns; in crypto_grab_spawn()
747 inst->spawns = spawn; in crypto_grab_spawn()
748 inst->alg.cra_flags |= in crypto_grab_spawn()
926 int __crypto_inst_setname(struct crypto_instance *inst, const char *name, in __crypto_inst_setname() argument
929 if (snprintf(inst->alg.cra_name, CRYPTO_MAX_ALG_NAME, "%s(%s)", name, in __crypto_inst_setname()
933 if (snprintf(inst->alg.cra_driver_name, CRYPTO_MAX_ALG_NAME, "%s(%s)", in __crypto_inst_setname()