summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2009-04-21 07:27:16 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2009-04-21 07:27:16 +0200
commit37fc334cc8eb84f5fe0a5a1cbe6a6a68049e142a (patch)
treee137bc3843707b51bc12776175734f38cfc6de1f
parentcrypto: eseqiv - Fix IV generation for sync algorithms (diff)
downloadlinux-37fc334cc8eb84f5fe0a5a1cbe6a6a68049e142a.tar.xz
linux-37fc334cc8eb84f5fe0a5a1cbe6a6a68049e142a.zip
crypto: api - Fix algorithm module auto-loading
The commit a760a6656e6f00bb0144a42a048cf0266646e22c (crypto: api - Fix module load deadlock with fallback algorithms) broke the auto-loading of algorithms that require fallbacks. The problem is that the fallback mask check is missing an and which cauess bits that should be considered to interfere with the result. Reported-by: Chuck Ebbert <cebbert@redhat.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--crypto/api.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/crypto/api.c b/crypto/api.c
index 314dab96840e..fd2545decb28 100644
--- a/crypto/api.c
+++ b/crypto/api.c
@@ -221,7 +221,8 @@ struct crypto_alg *crypto_larval_lookup(const char *name, u32 type, u32 mask)
request_module(name);
- if (!((type ^ CRYPTO_ALG_NEED_FALLBACK) & mask) &&
+ if (!((type ^ CRYPTO_ALG_NEED_FALLBACK) & mask &
+ CRYPTO_ALG_NEED_FALLBACK) &&
snprintf(tmp, sizeof(tmp), "%s-all", name) < sizeof(tmp))
request_module(tmp);