Lines Matching refs:larval
50 static inline int crypto_is_test_larval(struct crypto_larval *larval) in crypto_is_test_larval() argument
52 return larval->alg.cra_driver_name[0]; in crypto_is_test_larval()
97 struct crypto_larval *larval = (void *)alg; in crypto_larval_destroy() local
100 if (larval->adult) in crypto_larval_destroy()
101 crypto_mod_put(larval->adult); in crypto_larval_destroy()
102 kfree(larval); in crypto_larval_destroy()
107 struct crypto_larval *larval; in crypto_larval_alloc() local
109 larval = kzalloc(sizeof(*larval), GFP_KERNEL); in crypto_larval_alloc()
110 if (!larval) in crypto_larval_alloc()
113 larval->mask = mask; in crypto_larval_alloc()
114 larval->alg.cra_flags = CRYPTO_ALG_LARVAL | type; in crypto_larval_alloc()
115 larval->alg.cra_priority = -1; in crypto_larval_alloc()
116 larval->alg.cra_destroy = crypto_larval_destroy; in crypto_larval_alloc()
118 strlcpy(larval->alg.cra_name, name, CRYPTO_MAX_ALG_NAME); in crypto_larval_alloc()
119 init_completion(&larval->completion); in crypto_larval_alloc()
121 return larval; in crypto_larval_alloc()
129 struct crypto_larval *larval; in crypto_larval_add() local
131 larval = crypto_larval_alloc(name, type, mask); in crypto_larval_add()
132 if (IS_ERR(larval)) in crypto_larval_add()
133 return ERR_CAST(larval); in crypto_larval_add()
135 refcount_set(&larval->alg.cra_refcnt, 2); in crypto_larval_add()
140 alg = &larval->alg; in crypto_larval_add()
145 if (alg != &larval->alg) { in crypto_larval_add()
146 kfree(larval); in crypto_larval_add()
156 struct crypto_larval *larval = (void *)alg; in crypto_larval_kill() local
161 complete_all(&larval->completion); in crypto_larval_kill()
168 struct crypto_larval *larval = (void *)alg; in crypto_larval_wait() local
172 &larval->completion, 60 * HZ); in crypto_larval_wait()
174 alg = larval->adult; in crypto_larval_wait()
181 else if (crypto_is_test_larval(larval) && in crypto_larval_wait()
186 crypto_mod_put(&larval->alg); in crypto_larval_wait()
262 struct crypto_alg *larval; in crypto_alg_mod_lookup() local
275 larval = crypto_larval_lookup(name, type, mask); in crypto_alg_mod_lookup()
276 if (IS_ERR(larval) || !crypto_is_larval(larval)) in crypto_alg_mod_lookup()
277 return larval; in crypto_alg_mod_lookup()
279 ok = crypto_probing_notify(CRYPTO_MSG_ALG_REQUEST, larval); in crypto_alg_mod_lookup()
282 alg = crypto_larval_wait(larval); in crypto_alg_mod_lookup()
284 crypto_mod_put(larval); in crypto_alg_mod_lookup()
287 crypto_larval_kill(larval); in crypto_alg_mod_lookup()