|
@@ -254,6 +254,14 @@ static void pcrypt_aead_exit_tfm(struct crypto_aead *tfm)
|
|
|
crypto_free_aead(ctx->child);
|
|
|
}
|
|
|
|
|
|
+static void pcrypt_free(struct aead_instance *inst)
|
|
|
+{
|
|
|
+ struct pcrypt_instance_ctx *ctx = aead_instance_ctx(inst);
|
|
|
+
|
|
|
+ crypto_drop_aead(&ctx->spawn);
|
|
|
+ kfree(inst);
|
|
|
+}
|
|
|
+
|
|
|
static int pcrypt_init_instance(struct crypto_instance *inst,
|
|
|
struct crypto_alg *alg)
|
|
|
{
|
|
@@ -319,6 +327,8 @@ static int pcrypt_create_aead(struct crypto_template *tmpl, struct rtattr **tb,
|
|
|
inst->alg.encrypt = pcrypt_aead_encrypt;
|
|
|
inst->alg.decrypt = pcrypt_aead_decrypt;
|
|
|
|
|
|
+ inst->free = pcrypt_free;
|
|
|
+
|
|
|
err = aead_register_instance(tmpl, inst);
|
|
|
if (err)
|
|
|
goto out_drop_aead;
|
|
@@ -349,14 +359,6 @@ static int pcrypt_create(struct crypto_template *tmpl, struct rtattr **tb)
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
-static void pcrypt_free(struct crypto_instance *inst)
|
|
|
-{
|
|
|
- struct pcrypt_instance_ctx *ctx = crypto_instance_ctx(inst);
|
|
|
-
|
|
|
- crypto_drop_aead(&ctx->spawn);
|
|
|
- kfree(inst);
|
|
|
-}
|
|
|
-
|
|
|
static int pcrypt_cpumask_change_notify(struct notifier_block *self,
|
|
|
unsigned long val, void *data)
|
|
|
{
|
|
@@ -469,7 +471,6 @@ static void pcrypt_fini_padata(struct padata_pcrypt *pcrypt)
|
|
|
static struct crypto_template pcrypt_tmpl = {
|
|
|
.name = "pcrypt",
|
|
|
.create = pcrypt_create,
|
|
|
- .free = pcrypt_free,
|
|
|
.module = THIS_MODULE,
|
|
|
};
|
|
|
|