On Tue, Jan 11, 2022 at 05:26:11PM +1100, Herbert Xu wrote: > As testmgr is part of cryptomgr which was designed to be unloadable > as a module, it shouldn't export any symbols for other crypto > modules to use as that would prevent it from being unloaded. All > its functionality is meant to be accessed through notifiers. > > The symbol crypto_simd_disabled_for_test was added to testmgr > which caused it to be pinned as a module if its users were also > loaded. This patch moves it out of testmgr and into crypto/simd.c > so cryptomgr can again be unloaded and replaced on demand. > > Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> > > diff --git a/crypto/simd.c b/crypto/simd.c > index edaa479a1ec5..2027d747b746 100644 > --- a/crypto/simd.c > +++ b/crypto/simd.c > @@ -47,6 +47,11 @@ struct simd_skcipher_ctx { > struct cryptd_skcipher *cryptd_tfm; > }; > > +#ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS > +DEFINE_PER_CPU(bool, crypto_simd_disabled_for_test); > +EXPORT_PER_CPU_SYMBOL_GPL(crypto_simd_disabled_for_test); > +#endif > + > static int simd_skcipher_setkey(struct crypto_skcipher *tfm, const u8 *key, > unsigned int key_len) > { It doesn't look like all the users of crypto_simd_usable() select CRYPTO_SIMD. So this will cause a build break in some configurations. Maybe CRYPTO_MANAGER_EXTRA_TESTS should select CRYPTO_SIMD? - Eric