aboutsummaryrefslogtreecommitdiff
path: root/crypto/algapi.c
diff options
context:
space:
mode:
authorDave Jones <davej@redhat.com>2007-02-10 20:36:29 -0500
committerDave Jones <davej@redhat.com>2007-02-10 20:36:29 -0500
commitbd0561c9d8dcbf21cd9aa46c416bbf6a3a12e4b1 (patch)
tree64fe15d4db42e0840acea00e4cf7e1855bba9e96 /crypto/algapi.c
parent348f31ed2bd18391fe5903aa0ad7bfcda6d8ca0b (diff)
parent66efc5a7e3061c3597ac43a8bb1026488d57e66b (diff)
[CPUFREQ] Fix up merge conflicts with recent ACPI changes.
Signed-off-by: Dave Jones <davej@redhat.com>
Diffstat (limited to 'crypto/algapi.c')
-rw-r--r--crypto/algapi.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/crypto/algapi.c b/crypto/algapi.c
index c91530021e9..f7d2185b2c8 100644
--- a/crypto/algapi.c
+++ b/crypto/algapi.c
@@ -377,7 +377,8 @@ void crypto_drop_spawn(struct crypto_spawn *spawn)
}
EXPORT_SYMBOL_GPL(crypto_drop_spawn);
-struct crypto_tfm *crypto_spawn_tfm(struct crypto_spawn *spawn)
+struct crypto_tfm *crypto_spawn_tfm(struct crypto_spawn *spawn, u32 type,
+ u32 mask)
{
struct crypto_alg *alg;
struct crypto_alg *alg2;
@@ -396,10 +397,18 @@ struct crypto_tfm *crypto_spawn_tfm(struct crypto_spawn *spawn)
return ERR_PTR(-EAGAIN);
}
- tfm = __crypto_alloc_tfm(alg, 0);
+ tfm = ERR_PTR(-EINVAL);
+ if (unlikely((alg->cra_flags ^ type) & mask))
+ goto out_put_alg;
+
+ tfm = __crypto_alloc_tfm(alg, type, mask);
if (IS_ERR(tfm))
- crypto_mod_put(alg);
+ goto out_put_alg;
+
+ return tfm;
+out_put_alg:
+ crypto_mod_put(alg);
return tfm;
}
EXPORT_SYMBOL_GPL(crypto_spawn_tfm);