]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - crypto/aead.c
MAINTAINERS: mptcp@ mailing list is moderated
[linux.git] / crypto / aead.c
index c7135e00b8ea94125dddf4984787bf0846d92778..16991095270d2f6777a875d1417b07d92506b039 100644 (file)
@@ -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);
 }
 
@@ -211,9 +206,8 @@ int crypto_grab_aead(struct crypto_aead_spawn *spawn,
                     struct crypto_instance *inst,
                     const char *name, u32 type, u32 mask)
 {
-       spawn->base.inst = inst;
        spawn->base.frontend = &crypto_aead_type;
-       return crypto_grab_spawn(&spawn->base, name, type, mask);
+       return crypto_grab_spawn(&spawn->base, inst, name, type, mask);
 }
 EXPORT_SYMBOL_GPL(crypto_grab_aead);
 
@@ -294,6 +288,9 @@ int aead_register_instance(struct crypto_template *tmpl,
 {
        int err;
 
+       if (WARN_ON(!inst->free))
+               return -EINVAL;
+
        err = aead_prepare_alg(&inst->alg);
        if (err)
                return err;