diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-02-09 08:52:02 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-02-09 08:52:02 -0800 |
commit | d7c41b616518457e3bfece12e3f59f15d7450eeb (patch) | |
tree | 0c4031ec93d59176d5ce1aa4a296be5a0784f14f /crypto/shash.c | |
parent | a8e807f7607ab633de7be4e2f4c350923cc2cb63 (diff) | |
parent | 4f3e797ad07d52d34983354a77b365dfcd48c1b4 (diff) | |
download | kernel-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.c | 7 |
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; |