• Herbert Xu's avatar
    crypto: api - Fix module load deadlock with fallback algorithms · a760a665
    Herbert Xu authored
    With the mandatory algorithm testing at registration, we have
    now created a deadlock with algorithms requiring fallbacks.
    This can happen if the module containing the algorithm requiring
    fallback is loaded first, without the fallback module being loaded
    first.  The system will then try to test the new algorithm, find
    that it needs to load a fallback, and then try to load that.
    
    As both algorithms share the same module alias, it can attempt
    to load the original algorithm again and block indefinitely.
    
    As algorithms requiring fallbacks are a special case, we can fix
    this by giving them a different module alias than the rest.  Then
    it's just a matter of using the right aliases according to what
    algorithms we're trying to find.
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    a760a665
Name
Last commit
Last update
..
async_tx Loading commit data...
Kconfig Loading commit data...
Makefile Loading commit data...
ablkcipher.c Loading commit data...
aead.c Loading commit data...
aes_generic.c Loading commit data...
ahash.c Loading commit data...
algapi.c Loading commit data...
algboss.c Loading commit data...
ansi_cprng.c Loading commit data...
anubis.c Loading commit data...
api.c Loading commit data...
arc4.c Loading commit data...
authenc.c Loading commit data...
blkcipher.c Loading commit data...
blowfish.c Loading commit data...
camellia.c Loading commit data...
cast5.c Loading commit data...
cast6.c Loading commit data...
cbc.c Loading commit data...
ccm.c Loading commit data...
chainiv.c Loading commit data...
cipher.c Loading commit data...
compress.c Loading commit data...
crc32c.c Loading commit data...
cryptd.c Loading commit data...
crypto_null.c Loading commit data...
ctr.c Loading commit data...
cts.c Loading commit data...
deflate.c Loading commit data...
des_generic.c Loading commit data...
digest.c Loading commit data...
ecb.c Loading commit data...
eseqiv.c Loading commit data...
fcrypt.c Loading commit data...
fips.c Loading commit data...
gcm.c Loading commit data...
gf128mul.c Loading commit data...
hash.c Loading commit data...
hmac.c Loading commit data...
internal.h Loading commit data...
khazad.c Loading commit data...
krng.c Loading commit data...
lrw.c Loading commit data...
lzo.c Loading commit data...
md4.c Loading commit data...
md5.c Loading commit data...
michael_mic.c Loading commit data...
pcbc.c Loading commit data...
proc.c Loading commit data...
ripemd.h Loading commit data...
rmd128.c Loading commit data...
rmd160.c Loading commit data...
rmd256.c Loading commit data...
rmd320.c Loading commit data...
rng.c Loading commit data...
salsa20_generic.c Loading commit data...
scatterwalk.c Loading commit data...
seed.c Loading commit data...
seqiv.c Loading commit data...
serpent.c Loading commit data...
sha1_generic.c Loading commit data...
sha256_generic.c Loading commit data...
sha512_generic.c Loading commit data...
shash.c Loading commit data...
tcrypt.c Loading commit data...
tcrypt.h Loading commit data...
tea.c Loading commit data...
testmgr.c Loading commit data...
testmgr.h Loading commit data...
tgr192.c Loading commit data...
twofish.c Loading commit data...
twofish_common.c Loading commit data...
wp512.c Loading commit data...
xcbc.c Loading commit data...
xor.c Loading commit data...
xts.c Loading commit data...