On Thu, Aug 08, 2024 at 12:54:10PM -0700, Linus Torvalds wrote: > > I don't know the crypto registration API enough to even guess at what > the fix to break the recursion is. > > Herbert? Yes my plan is to fix this in the Crypto API and not do any recursive loads as we used to do. The immediate cause of the recursive load is the self-test system (if it is not disabled through Kconfig). The algorithm registration does not return until after the self-test has successfully executed. For the algorithm in question, that involves loading a fallback algorithm which is what triggered the recursive module load. We had an issue when algorithms were built into the kernel, where due to the random of registration calls, a self-test may invoke an algorithm which is built into the kernel but not yet registered. There it was resolved by postponing all self-tests until all algorithms had been registered (or when an algorithm was first used, which would trigger the self-test for that algorithm there and then). I will extend this to modules and let the registration return as soon as the new algorithm can be looked up. The self-test can then complete asynchronously. Russell, is it OK with you if we only resolve this in the mainline kernel or do you want a solution that can be backported as well? Thanks, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt