Lines Matching refs:larval
234 struct crypto_larval *larval;
266 larval = crypto_larval_alloc(alg->cra_name,
268 if (IS_ERR(larval))
272 larval->adult = crypto_mod_get(alg);
273 if (!larval->adult)
276 refcount_set(&larval->alg.cra_refcnt, 1);
277 memcpy(larval->alg.cra_driver_name, alg->cra_driver_name,
279 larval->alg.cra_priority = alg->cra_priority;
282 list_add(&larval->alg.cra_list, &crypto_alg_list);
287 return larval;
290 kfree(larval);
292 larval = ERR_PTR(ret);
326 /* Only satisfy larval waiters if we are the best. */
349 struct crypto_larval *larval = (void *)q;
354 * by the larval entry q.
360 if (larval->adult)
362 if ((q->cra_flags ^ alg->cra_flags) & larval->mask)
366 larval->adult = alg;
368 larval->adult = ERR_PTR(-EAGAIN);
405 static void crypto_wait_for_test(struct crypto_larval *larval)
409 err = crypto_probing_notify(CRYPTO_MSG_ALG_REGISTER, larval->adult);
413 crypto_alg_tested(larval->alg.cra_driver_name, 0);
416 err = wait_for_completion_killable(&larval->completion);
419 crypto_notify(CRYPTO_MSG_ALG_LOADED, larval);
422 crypto_larval_kill(&larval->alg);
427 struct crypto_larval *larval;
436 larval = __crypto_register_alg(alg);
439 if (IS_ERR(larval))
440 return PTR_ERR(larval);
442 crypto_wait_for_test(larval);
618 struct crypto_larval *larval;
631 larval = ERR_PTR(-EAGAIN);
647 larval = __crypto_register_alg(&inst->alg);
648 if (IS_ERR(larval))
657 err = PTR_ERR(larval);
658 if (IS_ERR(larval))
661 crypto_wait_for_test(larval);