On Mon, Nov 09, 2020 at 09:31:41AM +0100, Ard Biesheuvel wrote:
> Commit c4741b2305979 ("crypto: run initcalls for generic implementations
> earlier") converted tcrypt.ko's module_init() to subsys_initcall(), but
> this was unintentional: tcrypt.ko currently cannot be built into the core
> kernel, and so the subsys_initcall() gets converted into module_init()
> under the hood. Given that tcrypt.ko does not implement a generic version
> of a crypto algorithm that has to be available early during boot, there
> is no point in running the tcrypt init code earlier than implied by
> module_init().
>
> However, for crypto development purposes, we will lift the restriction
> that tcrypt.ko must be built as a module, and when builtin, it makes sense
> for tcrypt.ko (which does its work inside the module init function) to run
> as late as possible. So let's switch to late_initcall() instead.
>
> Signed-off-by: Ard Biesheuvel <[email protected]>
> ---
> crypto/tcrypt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c
> index eea0f453cfb6..fc1f3e516694 100644
> --- a/crypto/tcrypt.c
> +++ b/crypto/tcrypt.c
> @@ -3066,7 +3066,7 @@ static int __init tcrypt_mod_init(void)
> */
> static void __exit tcrypt_mod_fini(void) { }
>
> -subsys_initcall(tcrypt_mod_init);
> +late_initcall(tcrypt_mod_init);
> module_exit(tcrypt_mod_fini);
>
> module_param(alg, charp, 0);
> --
Reviewed-by: Eric Biggers <[email protected]>