summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2020-01-02 20:04:39 -0800
committerHerbert Xu <herbert@gondor.apana.org.au>2020-01-09 11:30:58 +0800
commit48c1a27b907ac975a8b22bbe87c03a8f8a6d5dc8 (patch)
treea75af98f0bee3c3661971a560e480f34cd44d30a
parent5356607e443a5cb3e129fb1f0947bb400f95a64e (diff)
downloadlinux-crypto-48c1a27b907ac975a8b22bbe87c03a8f8a6d5dc8.tar.gz
linux-crypto-48c1a27b907ac975a8b22bbe87c03a8f8a6d5dc8.zip
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>
-rw-r--r--crypto/aead.c5
-rw-r--r--crypto/ahash.c5
-rw-r--r--crypto/algapi.c5
-rw-r--r--crypto/algboss.c12
-rw-r--r--crypto/shash.c5
5 files changed, 1 insertions, 31 deletions
diff --git a/crypto/aead.c b/crypto/aead.c
index 02a0db07..7707d322 100644
--- a/crypto/aead.c
+++ b/crypto/aead.c
@@ -185,11 +185,6 @@ static void crypto_aead_free_instance(struct crypto_instance *inst)
{
struct aead_instance *aead = aead_instance(inst);
- if (!aead->free) {
- inst->tmpl->free(inst);
- return;
- }
-
aead->free(aead);
}
diff --git a/crypto/ahash.c b/crypto/ahash.c
index 61e374d7..cd5d9847 100644
--- a/crypto/ahash.c
+++ b/crypto/ahash.c
@@ -515,11 +515,6 @@ static void crypto_ahash_free_instance(struct crypto_instance *inst)
{
struct ahash_instance *ahash = ahash_instance(inst);
- if (!ahash->free) {
- inst->tmpl->free(inst);
- return;
- }
-
ahash->free(ahash);
}
diff --git a/crypto/algapi.c b/crypto/algapi.c
index 72592795..69605e21 100644
--- a/crypto/algapi.c
+++ b/crypto/algapi.c
@@ -65,11 +65,6 @@ static int crypto_check_alg(struct crypto_alg *alg)
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);
}
diff --git a/crypto/algboss.c b/crypto/algboss.c
index a62149d6..535f1f87 100644
--- a/crypto/algboss.c
+++ b/crypto/algboss.c
@@ -58,7 +58,6 @@ static int cryptomgr_probe(void *data)
{
struct cryptomgr_param *param = data;
struct crypto_template *tmpl;
- struct crypto_instance *inst;
int err;
tmpl = crypto_lookup_template(param->template);
@@ -66,16 +65,7 @@ static int cryptomgr_probe(void *data)
goto out;
do {
- if (tmpl->create) {
- 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);
+ err = tmpl->create(tmpl, param->tb);
} while (err == -EAGAIN && !signal_pending(current));
crypto_tmpl_put(tmpl);
diff --git a/crypto/shash.c b/crypto/shash.c
index e05e75b0..70faf28b 100644
--- a/crypto/shash.c
+++ b/crypto/shash.c
@@ -427,11 +427,6 @@ static void crypto_shash_free_instance(struct crypto_instance *inst)
{
struct shash_instance *shash = shash_instance(inst);
- if (!shash->free) {
- inst->tmpl->free(inst);
- return;
- }
-
shash->free(shash);
}