crypto: algapi - remove crypto_template::{alloc,free}()

Now that all templates provide a ->create() method which creates an
instance, installs a strongly-typed ->free() method directly to it, and
registers it, the older ->alloc() and ->free() methods in
'struct crypto_template' are no longer used.  Remove them.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Eric Biggers 2020-01-02 20:04:39 -08:00 committed by Herbert Xu
parent a39c66cc2f
commit a24a1fd731
6 changed files with 1 additions and 33 deletions

View File

@ -185,11 +185,6 @@ static void crypto_aead_free_instance(struct crypto_instance *inst)
{ {
struct aead_instance *aead = aead_instance(inst); struct aead_instance *aead = aead_instance(inst);
if (!aead->free) {
inst->tmpl->free(inst);
return;
}
aead->free(aead); aead->free(aead);
} }

View File

@ -515,11 +515,6 @@ static void crypto_ahash_free_instance(struct crypto_instance *inst)
{ {
struct ahash_instance *ahash = ahash_instance(inst); struct ahash_instance *ahash = ahash_instance(inst);
if (!ahash->free) {
inst->tmpl->free(inst);
return;
}
ahash->free(ahash); ahash->free(ahash);
} }

View File

@ -65,11 +65,6 @@ static int crypto_check_alg(struct crypto_alg *alg)
static void crypto_free_instance(struct crypto_instance *inst) static void crypto_free_instance(struct crypto_instance *inst)
{ {
if (!inst->alg.cra_type->free) {
inst->tmpl->free(inst);
return;
}
inst->alg.cra_type->free(inst); inst->alg.cra_type->free(inst);
} }

View File

@ -58,7 +58,6 @@ static int cryptomgr_probe(void *data)
{ {
struct cryptomgr_param *param = data; struct cryptomgr_param *param = data;
struct crypto_template *tmpl; struct crypto_template *tmpl;
struct crypto_instance *inst;
int err; int err;
tmpl = crypto_lookup_template(param->template); tmpl = crypto_lookup_template(param->template);
@ -66,16 +65,7 @@ static int cryptomgr_probe(void *data)
goto out; goto out;
do { do {
if (tmpl->create) { err = tmpl->create(tmpl, param->tb);
err = tmpl->create(tmpl, param->tb);
continue;
}
inst = tmpl->alloc(param->tb);
if (IS_ERR(inst))
err = PTR_ERR(inst);
else if ((err = crypto_register_instance(tmpl, inst)))
tmpl->free(inst);
} while (err == -EAGAIN && !signal_pending(current)); } while (err == -EAGAIN && !signal_pending(current));
crypto_tmpl_put(tmpl); crypto_tmpl_put(tmpl);

View File

@ -427,11 +427,6 @@ static void crypto_shash_free_instance(struct crypto_instance *inst)
{ {
struct shash_instance *shash = shash_instance(inst); struct shash_instance *shash = shash_instance(inst);
if (!shash->free) {
inst->tmpl->free(inst);
return;
}
shash->free(shash); shash->free(shash);
} }

View File

@ -63,8 +63,6 @@ struct crypto_template {
struct hlist_head instances; struct hlist_head instances;
struct module *module; struct module *module;
struct crypto_instance *(*alloc)(struct rtattr **tb);
void (*free)(struct crypto_instance *inst);
int (*create)(struct crypto_template *tmpl, struct rtattr **tb); int (*create)(struct crypto_template *tmpl, struct rtattr **tb);
char name[CRYPTO_MAX_ALG_NAME]; char name[CRYPTO_MAX_ALG_NAME];