summaryrefslogtreecommitdiffstats
path: root/crypto/shash.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-02-09 08:52:02 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2009-02-09 08:52:02 -0800
commitd7c41b616518457e3bfece12e3f59f15d7450eeb (patch)
tree0c4031ec93d59176d5ce1aa4a296be5a0784f14f /crypto/shash.c
parenta8e807f7607ab633de7be4e2f4c350923cc2cb63 (diff)
parent4f3e797ad07d52d34983354a77b365dfcd48c1b4 (diff)
downloadkernel-crypto-d7c41b616518457e3bfece12e3f59f15d7450eeb.tar.gz
kernel-crypto-d7c41b616518457e3bfece12e3f59f15d7450eeb.tar.xz
kernel-crypto-d7c41b616518457e3bfece12e3f59f15d7450eeb.zip
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: scatterwalk - Avoid flush_dcache_page on slab pages crypto: shash - Fix tfm destruction crypto: api - Fix zeroing on free crypto: shash - Fix module refcount crypto: api - Fix algorithm test race that broke aead initialisation
Diffstat (limited to 'crypto/shash.c')
-rw-r--r--crypto/shash.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/crypto/shash.c b/crypto/shash.c
index c9df367332f..d5a2b619c55 100644
--- a/crypto/shash.c
+++ b/crypto/shash.c
@@ -388,10 +388,15 @@ static int crypto_init_shash_ops_compat(struct crypto_tfm *tfm)
struct shash_desc *desc = crypto_tfm_ctx(tfm);
struct crypto_shash *shash;
+ if (!crypto_mod_get(calg))
+ return -EAGAIN;
+
shash = __crypto_shash_cast(crypto_create_tfm(
calg, &crypto_shash_type));
- if (IS_ERR(shash))
+ if (IS_ERR(shash)) {
+ crypto_mod_put(calg);
return PTR_ERR(shash);
+ }
desc->tfm = shash;
tfm->exit = crypto_exit_shash_ops_compat;