Lines Matching refs:spawn

99  * This function adds a spawn to the list secondary_spawns which
101 * instances, unless the spawn happens to be one that is depended
112 struct crypto_spawn *spawn, *n;
114 spawn = list_first_entry_or_null(stack, struct crypto_spawn, list);
115 if (!spawn)
118 n = list_prev_entry(spawn, list);
119 list_move(&spawn->list, secondary_spawns);
125 if (!spawn->dead)
161 struct crypto_spawn *spawn, *n;
168 list_for_each_entry_safe(spawn, n, spawns, list) {
169 if ((spawn->alg->cra_flags ^ new_type) & spawn->mask)
172 list_move(&spawn->list, &top);
178 * from alg to the current spawn.
185 spawn = list_first_entry(spawns, struct crypto_spawn,
187 inst = spawn->inst;
189 list_move(&spawn->list, &stack);
190 spawn->dead = !spawn->registered || &inst->alg != nalg;
192 if (!spawn->registered)
203 * Even if spawn->registered is true, the
228 list_for_each_entry_safe(spawn, n, &secondary_spawns, list) {
229 if (!spawn->dead)
230 list_move(&spawn->list, &spawn->alg->cra_users);
231 else if (spawn->registered)
232 crypto_remove_instance(spawn->inst, list);
654 struct crypto_spawn *spawn;
669 for (spawn = inst->spawns; spawn;) {
672 if (spawn->dead)
675 next = spawn->next;
676 spawn->inst = inst;
677 spawn->registered = true;
679 fips_internal |= spawn->alg->cra_flags;
681 crypto_mod_put(spawn->alg);
683 spawn = next;
724 int crypto_grab_spawn(struct crypto_spawn *spawn, struct crypto_instance *inst,
737 alg = crypto_find_alg(name, spawn->frontend,
744 list_add(&spawn->list, &alg->cra_users);
745 spawn->alg = alg;
746 spawn->mask = mask;
747 spawn->next = inst->spawns;
748 inst->spawns = spawn;
760 void crypto_drop_spawn(struct crypto_spawn *spawn)
762 if (!spawn->alg) /* not yet initialized? */
766 if (!spawn->dead)
767 list_del(&spawn->list);
770 if (!spawn->registered)
771 crypto_mod_put(spawn->alg);
775 static struct crypto_alg *crypto_spawn_alg(struct crypto_spawn *spawn)
782 if (!spawn->dead) {
783 alg = spawn->alg;
800 struct crypto_tfm *crypto_spawn_tfm(struct crypto_spawn *spawn, u32 type,
806 alg = crypto_spawn_alg(spawn);
826 void *crypto_spawn_tfm2(struct crypto_spawn *spawn)
831 alg = crypto_spawn_alg(spawn);
835 tfm = crypto_create_tfm(alg, spawn->frontend);