On Tue, Apr 29, 2025 at 01:50:34PM +0800, Herbert Xu wrote: > diff --git a/arch/arm/lib/crypto/chacha-glue.c b/arch/arm/lib/crypto/chacha-glue.c > index 12afb40cf1ff..eb73ff0eaf2e 100644 > --- a/arch/arm/lib/crypto/chacha-glue.c > +++ b/arch/arm/lib/crypto/chacha-glue.c > @@ -122,7 +122,7 @@ static int __init chacha_arm_mod_init(void) > } > return 0; > } > -arch_initcall(chacha_arm_mod_init); > +module_init(chacha_arm_mod_init); arch/*/lib/ should be kept at arch_initcall. It makes sense (it's arch/ code); it's library code with no dependencies on any other initcalls; and it can be used during initialization of other modules, notably with crypto/ depending on *_is_arch_optimized(). I understand that this patch sets the initcall level conditionally depending on whether each individual file uses static keys in *_is_arch_optimized() or not, but there's no need to add that complexity. Just use arch_initcall. (And FWIW I'll keep doing that arch/*/lib/crc*.c, even if you decide to mess up arch/*/lib/crypto/.) - Eric