]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
crypto: api - Fix algorithm module auto-loading
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 21 Apr 2009 05:27:16 +0000 (13:27 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 15 Jun 2009 16:40:18 +0000 (09:40 -0700)
commit 37fc334cc8eb84f5fe0a5a1cbe6a6a68049e142a upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
crypto/api.c

index 38a2bc02a98c7f6648f7a7a3388c6182b88c07f9..e7aa72d89e6bc0b86531cea481bd4e01461e793a 100644 (file)
@@ -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);