aboutsummaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2019-04-12 00:57:42 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2019-04-18 10:15:03 -0400
commitc4741b23059794bd99beef0f700103b0d983b3fd (patch)
tree8db3440418a9c3ed32d57c2c2a35340479d3cc44 /crypto
parent40153b10d91c9e25f912344ba6ce1f0874400659 (diff)
crypto: run initcalls for generic implementations earlier
Use subsys_initcall for registration of all templates and generic algorithm implementations, rather than module_init. Then change cryptomgr to use arch_initcall, to place it before the subsys_initcalls. This is needed so that when both a generic and optimized implementation of an algorithm are built into the kernel (not loadable modules), the generic implementation is registered before the optimized one. Otherwise, the self-tests for the optimized implementation are unable to allocate the generic implementation for the new comparison fuzz tests. Note that on arm, a side effect of this change is that self-tests for generic implementations may run before the unaligned access handler has been installed. So, unaligned accesses will crash the kernel. This is arguably a good thing as it makes it easier to detect that type of bug. Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/842.c2
-rw-r--r--crypto/adiantum.c2
-rw-r--r--crypto/aegis128.c2
-rw-r--r--crypto/aegis128l.c2
-rw-r--r--crypto/aegis256.c2
-rw-r--r--crypto/aes_generic.c2
-rw-r--r--crypto/algboss.c8
-rw-r--r--crypto/ansi_cprng.c2
-rw-r--r--crypto/anubis.c2
-rw-r--r--crypto/arc4.c2
-rw-r--r--crypto/authenc.c2
-rw-r--r--crypto/authencesn.c2
-rw-r--r--crypto/blowfish_generic.c2
-rw-r--r--crypto/camellia_generic.c2
-rw-r--r--crypto/cast5_generic.c2
-rw-r--r--crypto/cast6_generic.c2
-rw-r--r--crypto/cbc.c2
-rw-r--r--crypto/ccm.c2
-rw-r--r--crypto/cfb.c2
-rw-r--r--crypto/chacha20poly1305.c2
-rw-r--r--crypto/chacha_generic.c2
-rw-r--r--crypto/cmac.c2
-rw-r--r--crypto/crc32_generic.c2
-rw-r--r--crypto/crc32c_generic.c2
-rw-r--r--crypto/crct10dif_generic.c2
-rw-r--r--crypto/crypto_null.c2
-rw-r--r--crypto/ctr.c2
-rw-r--r--crypto/cts.c2
-rw-r--r--crypto/deflate.c2
-rw-r--r--crypto/des_generic.c2
-rw-r--r--crypto/dh.c2
-rw-r--r--crypto/drbg.c2
-rw-r--r--crypto/ecb.c2
-rw-r--r--crypto/ecdh.c2
-rw-r--r--crypto/echainiv.c2
-rw-r--r--crypto/fcrypt.c2
-rw-r--r--crypto/fips.c2
-rw-r--r--crypto/gcm.c2
-rw-r--r--crypto/ghash-generic.c2
-rw-r--r--crypto/hmac.c2
-rw-r--r--crypto/jitterentropy-kcapi.c2
-rw-r--r--crypto/keywrap.c2
-rw-r--r--crypto/khazad.c2
-rw-r--r--crypto/lrw.c2
-rw-r--r--crypto/lz4.c2
-rw-r--r--crypto/lz4hc.c2
-rw-r--r--crypto/lzo-rle.c2
-rw-r--r--crypto/lzo.c2
-rw-r--r--crypto/md4.c2
-rw-r--r--crypto/md5.c2
-rw-r--r--crypto/michael_mic.c2
-rw-r--r--crypto/morus1280.c2
-rw-r--r--crypto/morus640.c2
-rw-r--r--crypto/nhpoly1305.c2
-rw-r--r--crypto/ofb.c2
-rw-r--r--crypto/pcbc.c2
-rw-r--r--crypto/pcrypt.c2
-rw-r--r--crypto/poly1305_generic.c2
-rw-r--r--crypto/rmd128.c2
-rw-r--r--crypto/rmd160.c2
-rw-r--r--crypto/rmd256.c2
-rw-r--r--crypto/rmd320.c2
-rw-r--r--crypto/rsa.c2
-rw-r--r--crypto/salsa20_generic.c2
-rw-r--r--crypto/seed.c2
-rw-r--r--crypto/seqiv.c2
-rw-r--r--crypto/serpent_generic.c2
-rw-r--r--crypto/sha1_generic.c2
-rw-r--r--crypto/sha256_generic.c2
-rw-r--r--crypto/sha3_generic.c2
-rw-r--r--crypto/sha512_generic.c2
-rw-r--r--crypto/sm3_generic.c2
-rw-r--r--crypto/sm4_generic.c2
-rw-r--r--crypto/streebog_generic.c2
-rw-r--r--crypto/tcrypt.c2
-rw-r--r--crypto/tea.c2
-rw-r--r--crypto/tgr192.c2
-rw-r--r--crypto/twofish_generic.c2
-rw-r--r--crypto/vmac.c2
-rw-r--r--crypto/wp512.c2
-rw-r--r--crypto/xcbc.c2
-rw-r--r--crypto/xts.c2
-rw-r--r--crypto/zstd.c2
83 files changed, 89 insertions, 83 deletions
diff --git a/crypto/842.c b/crypto/842.c
index bc26dc942821..5f98393b65d1 100644
--- a/crypto/842.c
+++ b/crypto/842.c
@@ -144,7 +144,7 @@ static int __init crypto842_mod_init(void)
144 144
145 return ret; 145 return ret;
146} 146}
147module_init(crypto842_mod_init); 147subsys_initcall(crypto842_mod_init);
148 148
149static void __exit crypto842_mod_exit(void) 149static void __exit crypto842_mod_exit(void)
150{ 150{
diff --git a/crypto/adiantum.c b/crypto/adiantum.c
index 5564e73266a6..e6de50f669aa 100644
--- a/crypto/adiantum.c
+++ b/crypto/adiantum.c
@@ -659,7 +659,7 @@ static void __exit adiantum_module_exit(void)
659 crypto_unregister_template(&adiantum_tmpl); 659 crypto_unregister_template(&adiantum_tmpl);
660} 660}
661 661
662module_init(adiantum_module_init); 662subsys_initcall(adiantum_module_init);
663module_exit(adiantum_module_exit); 663module_exit(adiantum_module_exit);
664 664
665MODULE_DESCRIPTION("Adiantum length-preserving encryption mode"); 665MODULE_DESCRIPTION("Adiantum length-preserving encryption mode");
diff --git a/crypto/aegis128.c b/crypto/aegis128.c
index 3718a8341303..d78f77fc5dd1 100644
--- a/crypto/aegis128.c
+++ b/crypto/aegis128.c
@@ -448,7 +448,7 @@ static void __exit crypto_aegis128_module_exit(void)
448 crypto_unregister_aead(&crypto_aegis128_alg); 448 crypto_unregister_aead(&crypto_aegis128_alg);
449} 449}
450 450
451module_init(crypto_aegis128_module_init); 451subsys_initcall(crypto_aegis128_module_init);
452module_exit(crypto_aegis128_module_exit); 452module_exit(crypto_aegis128_module_exit);
453 453
454MODULE_LICENSE("GPL"); 454MODULE_LICENSE("GPL");
diff --git a/crypto/aegis128l.c b/crypto/aegis128l.c
index 275a8616d71b..9bca3d619a22 100644
--- a/crypto/aegis128l.c
+++ b/crypto/aegis128l.c
@@ -512,7 +512,7 @@ static void __exit crypto_aegis128l_module_exit(void)
512 crypto_unregister_aead(&crypto_aegis128l_alg); 512 crypto_unregister_aead(&crypto_aegis128l_alg);
513} 513}
514 514
515module_init(crypto_aegis128l_module_init); 515subsys_initcall(crypto_aegis128l_module_init);
516module_exit(crypto_aegis128l_module_exit); 516module_exit(crypto_aegis128l_module_exit);
517 517
518MODULE_LICENSE("GPL"); 518MODULE_LICENSE("GPL");
diff --git a/crypto/aegis256.c b/crypto/aegis256.c
index ecd6b7f34a2d..b47fd39595ad 100644
--- a/crypto/aegis256.c
+++ b/crypto/aegis256.c
@@ -463,7 +463,7 @@ static void __exit crypto_aegis256_module_exit(void)
463 crypto_unregister_aead(&crypto_aegis256_alg); 463 crypto_unregister_aead(&crypto_aegis256_alg);
464} 464}
465 465
466module_init(crypto_aegis256_module_init); 466subsys_initcall(crypto_aegis256_module_init);
467module_exit(crypto_aegis256_module_exit); 467module_exit(crypto_aegis256_module_exit);
468 468
469MODULE_LICENSE("GPL"); 469MODULE_LICENSE("GPL");
diff --git a/crypto/aes_generic.c b/crypto/aes_generic.c
index fddcbe3edb0a..f217568917e4 100644
--- a/crypto/aes_generic.c
+++ b/crypto/aes_generic.c
@@ -1470,7 +1470,7 @@ static void __exit aes_fini(void)
1470 crypto_unregister_alg(&aes_alg); 1470 crypto_unregister_alg(&aes_alg);
1471} 1471}
1472 1472
1473module_init(aes_init); 1473subsys_initcall(aes_init);
1474module_exit(aes_fini); 1474module_exit(aes_fini);
1475 1475
1476MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm"); 1476MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm");
diff --git a/crypto/algboss.c b/crypto/algboss.c
index 527b44d0af21..bb97cfb38836 100644
--- a/crypto/algboss.c
+++ b/crypto/algboss.c
@@ -296,7 +296,13 @@ static void __exit cryptomgr_exit(void)
296 BUG_ON(err); 296 BUG_ON(err);
297} 297}
298 298
299subsys_initcall(cryptomgr_init); 299/*
300 * This is arch_initcall() so that the crypto self-tests are run on algorithms
301 * registered early by subsys_initcall(). subsys_initcall() is needed for
302 * generic implementations so that they're available for comparison tests when
303 * other implementations are registered later by module_init().
304 */
305arch_initcall(cryptomgr_init);
300module_exit(cryptomgr_exit); 306module_exit(cryptomgr_exit);
301 307
302MODULE_LICENSE("GPL"); 308MODULE_LICENSE("GPL");
diff --git a/crypto/ansi_cprng.c b/crypto/ansi_cprng.c
index eff337ce9003..e7c43ea4ce9d 100644
--- a/crypto/ansi_cprng.c
+++ b/crypto/ansi_cprng.c
@@ -472,7 +472,7 @@ MODULE_DESCRIPTION("Software Pseudo Random Number Generator");
472MODULE_AUTHOR("Neil Horman <nhorman@tuxdriver.com>"); 472MODULE_AUTHOR("Neil Horman <nhorman@tuxdriver.com>");
473module_param(dbg, int, 0); 473module_param(dbg, int, 0);
474MODULE_PARM_DESC(dbg, "Boolean to enable debugging (0/1 == off/on)"); 474MODULE_PARM_DESC(dbg, "Boolean to enable debugging (0/1 == off/on)");
475module_init(prng_mod_init); 475subsys_initcall(prng_mod_init);
476module_exit(prng_mod_fini); 476module_exit(prng_mod_fini);
477MODULE_ALIAS_CRYPTO("stdrng"); 477MODULE_ALIAS_CRYPTO("stdrng");
478MODULE_ALIAS_CRYPTO("ansi_cprng"); 478MODULE_ALIAS_CRYPTO("ansi_cprng");
diff --git a/crypto/anubis.c b/crypto/anubis.c
index 4bb187c2a902..673927de0eb9 100644
--- a/crypto/anubis.c
+++ b/crypto/anubis.c
@@ -699,7 +699,7 @@ static void __exit anubis_mod_fini(void)
699 crypto_unregister_alg(&anubis_alg); 699 crypto_unregister_alg(&anubis_alg);
700} 700}
701 701
702module_init(anubis_mod_init); 702subsys_initcall(anubis_mod_init);
703module_exit(anubis_mod_fini); 703module_exit(anubis_mod_fini);
704 704
705MODULE_LICENSE("GPL"); 705MODULE_LICENSE("GPL");
diff --git a/crypto/arc4.c b/crypto/arc4.c
index 6c93342e3405..2233d36456e2 100644
--- a/crypto/arc4.c
+++ b/crypto/arc4.c
@@ -163,7 +163,7 @@ static void __exit arc4_exit(void)
163 crypto_unregister_skcipher(&arc4_skcipher); 163 crypto_unregister_skcipher(&arc4_skcipher);
164} 164}
165 165
166module_init(arc4_init); 166subsys_initcall(arc4_init);
167module_exit(arc4_exit); 167module_exit(arc4_exit);
168 168
169MODULE_LICENSE("GPL"); 169MODULE_LICENSE("GPL");
diff --git a/crypto/authenc.c b/crypto/authenc.c
index 4be293a4b5f0..b3eddac7fa3a 100644
--- a/crypto/authenc.c
+++ b/crypto/authenc.c
@@ -508,7 +508,7 @@ static void __exit crypto_authenc_module_exit(void)
508 crypto_unregister_template(&crypto_authenc_tmpl); 508 crypto_unregister_template(&crypto_authenc_tmpl);
509} 509}
510 510
511module_init(crypto_authenc_module_init); 511subsys_initcall(crypto_authenc_module_init);
512module_exit(crypto_authenc_module_exit); 512module_exit(crypto_authenc_module_exit);
513 513
514MODULE_LICENSE("GPL"); 514MODULE_LICENSE("GPL");
diff --git a/crypto/authencesn.c b/crypto/authencesn.c
index 4741fe89ba2c..58074308e535 100644
--- a/crypto/authencesn.c
+++ b/crypto/authencesn.c
@@ -523,7 +523,7 @@ static void __exit crypto_authenc_esn_module_exit(void)
523 crypto_unregister_template(&crypto_authenc_esn_tmpl); 523 crypto_unregister_template(&crypto_authenc_esn_tmpl);
524} 524}
525 525
526module_init(crypto_authenc_esn_module_init); 526subsys_initcall(crypto_authenc_esn_module_init);
527module_exit(crypto_authenc_esn_module_exit); 527module_exit(crypto_authenc_esn_module_exit);
528 528
529MODULE_LICENSE("GPL"); 529MODULE_LICENSE("GPL");
diff --git a/crypto/blowfish_generic.c b/crypto/blowfish_generic.c
index 87b392a77a93..8548ced8b074 100644
--- a/crypto/blowfish_generic.c
+++ b/crypto/blowfish_generic.c
@@ -133,7 +133,7 @@ static void __exit blowfish_mod_fini(void)
133 crypto_unregister_alg(&alg); 133 crypto_unregister_alg(&alg);
134} 134}
135 135
136module_init(blowfish_mod_init); 136subsys_initcall(blowfish_mod_init);
137module_exit(blowfish_mod_fini); 137module_exit(blowfish_mod_fini);
138 138
139MODULE_LICENSE("GPL"); 139MODULE_LICENSE("GPL");
diff --git a/crypto/camellia_generic.c b/crypto/camellia_generic.c
index 32ddd4836ff5..15ce1281f5d9 100644
--- a/crypto/camellia_generic.c
+++ b/crypto/camellia_generic.c
@@ -1092,7 +1092,7 @@ static void __exit camellia_fini(void)
1092 crypto_unregister_alg(&camellia_alg); 1092 crypto_unregister_alg(&camellia_alg);
1093} 1093}
1094 1094
1095module_init(camellia_init); 1095subsys_initcall(camellia_init);
1096module_exit(camellia_fini); 1096module_exit(camellia_fini);
1097 1097
1098MODULE_DESCRIPTION("Camellia Cipher Algorithm"); 1098MODULE_DESCRIPTION("Camellia Cipher Algorithm");
diff --git a/crypto/cast5_generic.c b/crypto/cast5_generic.c
index 66169c178314..24bc7d4e33be 100644
--- a/crypto/cast5_generic.c
+++ b/crypto/cast5_generic.c
@@ -543,7 +543,7 @@ static void __exit cast5_mod_fini(void)
543 crypto_unregister_alg(&alg); 543 crypto_unregister_alg(&alg);
544} 544}
545 545
546module_init(cast5_mod_init); 546subsys_initcall(cast5_mod_init);
547module_exit(cast5_mod_fini); 547module_exit(cast5_mod_fini);
548 548
549MODULE_LICENSE("GPL"); 549MODULE_LICENSE("GPL");
diff --git a/crypto/cast6_generic.c b/crypto/cast6_generic.c
index c8e5ec69790e..edd59cc34991 100644
--- a/crypto/cast6_generic.c
+++ b/crypto/cast6_generic.c
@@ -285,7 +285,7 @@ static void __exit cast6_mod_fini(void)
285 crypto_unregister_alg(&alg); 285 crypto_unregister_alg(&alg);
286} 286}
287 287
288module_init(cast6_mod_init); 288subsys_initcall(cast6_mod_init);
289module_exit(cast6_mod_fini); 289module_exit(cast6_mod_fini);
290 290
291MODULE_LICENSE("GPL"); 291MODULE_LICENSE("GPL");
diff --git a/crypto/cbc.c b/crypto/cbc.c
index d12efaac9230..129f79d03365 100644
--- a/crypto/cbc.c
+++ b/crypto/cbc.c
@@ -98,7 +98,7 @@ static void __exit crypto_cbc_module_exit(void)
98 crypto_unregister_template(&crypto_cbc_tmpl); 98 crypto_unregister_template(&crypto_cbc_tmpl);
99} 99}
100 100
101module_init(crypto_cbc_module_init); 101subsys_initcall(crypto_cbc_module_init);
102module_exit(crypto_cbc_module_exit); 102module_exit(crypto_cbc_module_exit);
103 103
104MODULE_LICENSE("GPL"); 104MODULE_LICENSE("GPL");
diff --git a/crypto/ccm.c b/crypto/ccm.c
index 50df8f001c1c..3d036df0f4d4 100644
--- a/crypto/ccm.c
+++ b/crypto/ccm.c
@@ -1014,7 +1014,7 @@ static void __exit crypto_ccm_module_exit(void)
1014 ARRAY_SIZE(crypto_ccm_tmpls)); 1014 ARRAY_SIZE(crypto_ccm_tmpls));
1015} 1015}
1016 1016
1017module_init(crypto_ccm_module_init); 1017subsys_initcall(crypto_ccm_module_init);
1018module_exit(crypto_ccm_module_exit); 1018module_exit(crypto_ccm_module_exit);
1019 1019
1020MODULE_LICENSE("GPL"); 1020MODULE_LICENSE("GPL");
diff --git a/crypto/cfb.c b/crypto/cfb.c
index 03ac847f6d6a..7b68fbb61732 100644
--- a/crypto/cfb.c
+++ b/crypto/cfb.c
@@ -243,7 +243,7 @@ static void __exit crypto_cfb_module_exit(void)
243 crypto_unregister_template(&crypto_cfb_tmpl); 243 crypto_unregister_template(&crypto_cfb_tmpl);
244} 244}
245 245
246module_init(crypto_cfb_module_init); 246subsys_initcall(crypto_cfb_module_init);
247module_exit(crypto_cfb_module_exit); 247module_exit(crypto_cfb_module_exit);
248 248
249MODULE_LICENSE("GPL"); 249MODULE_LICENSE("GPL");
diff --git a/crypto/chacha20poly1305.c b/crypto/chacha20poly1305.c
index 279d816ab51d..e38a2d61819a 100644
--- a/crypto/chacha20poly1305.c
+++ b/crypto/chacha20poly1305.c
@@ -725,7 +725,7 @@ static void __exit chacha20poly1305_module_exit(void)
725 ARRAY_SIZE(rfc7539_tmpls)); 725 ARRAY_SIZE(rfc7539_tmpls));
726} 726}
727 727
728module_init(chacha20poly1305_module_init); 728subsys_initcall(chacha20poly1305_module_init);
729module_exit(chacha20poly1305_module_exit); 729module_exit(chacha20poly1305_module_exit);
730 730
731MODULE_LICENSE("GPL"); 731MODULE_LICENSE("GPL");
diff --git a/crypto/chacha_generic.c b/crypto/chacha_generic.c
index a7fae9b73ec4..d2ec04997832 100644
--- a/crypto/chacha_generic.c
+++ b/crypto/chacha_generic.c
@@ -201,7 +201,7 @@ static void __exit chacha_generic_mod_fini(void)
201 crypto_unregister_skciphers(algs, ARRAY_SIZE(algs)); 201 crypto_unregister_skciphers(algs, ARRAY_SIZE(algs));
202} 202}
203 203
204module_init(chacha_generic_mod_init); 204subsys_initcall(chacha_generic_mod_init);
205module_exit(chacha_generic_mod_fini); 205module_exit(chacha_generic_mod_fini);
206 206
207MODULE_LICENSE("GPL"); 207MODULE_LICENSE("GPL");
diff --git a/crypto/cmac.c b/crypto/cmac.c
index 16301f52858c..c60b6c011ec6 100644
--- a/crypto/cmac.c
+++ b/crypto/cmac.c
@@ -313,7 +313,7 @@ static void __exit crypto_cmac_module_exit(void)
313 crypto_unregister_template(&crypto_cmac_tmpl); 313 crypto_unregister_template(&crypto_cmac_tmpl);
314} 314}
315 315
316module_init(crypto_cmac_module_init); 316subsys_initcall(crypto_cmac_module_init);
317module_exit(crypto_cmac_module_exit); 317module_exit(crypto_cmac_module_exit);
318 318
319MODULE_LICENSE("GPL"); 319MODULE_LICENSE("GPL");
diff --git a/crypto/crc32_generic.c b/crypto/crc32_generic.c
index 00facd27bcc2..9e97912280bd 100644
--- a/crypto/crc32_generic.c
+++ b/crypto/crc32_generic.c
@@ -146,7 +146,7 @@ static void __exit crc32_mod_fini(void)
146 crypto_unregister_shash(&alg); 146 crypto_unregister_shash(&alg);
147} 147}
148 148
149module_init(crc32_mod_init); 149subsys_initcall(crc32_mod_init);
150module_exit(crc32_mod_fini); 150module_exit(crc32_mod_fini);
151 151
152MODULE_AUTHOR("Alexander Boyko <alexander_boyko@xyratex.com>"); 152MODULE_AUTHOR("Alexander Boyko <alexander_boyko@xyratex.com>");
diff --git a/crypto/crc32c_generic.c b/crypto/crc32c_generic.c
index 7283066ecc98..ad26f15d4c7b 100644
--- a/crypto/crc32c_generic.c
+++ b/crypto/crc32c_generic.c
@@ -165,7 +165,7 @@ static void __exit crc32c_mod_fini(void)
165 crypto_unregister_shash(&alg); 165 crypto_unregister_shash(&alg);
166} 166}
167 167
168module_init(crc32c_mod_init); 168subsys_initcall(crc32c_mod_init);
169module_exit(crc32c_mod_fini); 169module_exit(crc32c_mod_fini);
170 170
171MODULE_AUTHOR("Clay Haapala <chaapala@cisco.com>"); 171MODULE_AUTHOR("Clay Haapala <chaapala@cisco.com>");
diff --git a/crypto/crct10dif_generic.c b/crypto/crct10dif_generic.c
index d08048ae5552..d90c0070710e 100644
--- a/crypto/crct10dif_generic.c
+++ b/crypto/crct10dif_generic.c
@@ -112,7 +112,7 @@ static void __exit crct10dif_mod_fini(void)
112 crypto_unregister_shash(&alg); 112 crypto_unregister_shash(&alg);
113} 113}
114 114
115module_init(crct10dif_mod_init); 115subsys_initcall(crct10dif_mod_init);
116module_exit(crct10dif_mod_fini); 116module_exit(crct10dif_mod_fini);
117 117
118MODULE_AUTHOR("Tim Chen <tim.c.chen@linux.intel.com>"); 118MODULE_AUTHOR("Tim Chen <tim.c.chen@linux.intel.com>");
diff --git a/crypto/crypto_null.c b/crypto/crypto_null.c
index 01630a9c7e01..9320d4eaa4a8 100644
--- a/crypto/crypto_null.c
+++ b/crypto/crypto_null.c
@@ -220,7 +220,7 @@ static void __exit crypto_null_mod_fini(void)
220 crypto_unregister_skcipher(&skcipher_null); 220 crypto_unregister_skcipher(&skcipher_null);
221} 221}
222 222
223module_init(crypto_null_mod_init); 223subsys_initcall(crypto_null_mod_init);
224module_exit(crypto_null_mod_fini); 224module_exit(crypto_null_mod_fini);
225 225
226MODULE_LICENSE("GPL"); 226MODULE_LICENSE("GPL");
diff --git a/crypto/ctr.c b/crypto/ctr.c
index ec8f8b67473a..52cdf2c5605f 100644
--- a/crypto/ctr.c
+++ b/crypto/ctr.c
@@ -384,7 +384,7 @@ static void __exit crypto_ctr_module_exit(void)
384 ARRAY_SIZE(crypto_ctr_tmpls)); 384 ARRAY_SIZE(crypto_ctr_tmpls));
385} 385}
386 386
387module_init(crypto_ctr_module_init); 387subsys_initcall(crypto_ctr_module_init);
388module_exit(crypto_ctr_module_exit); 388module_exit(crypto_ctr_module_exit);
389 389
390MODULE_LICENSE("GPL"); 390MODULE_LICENSE("GPL");
diff --git a/crypto/cts.c b/crypto/cts.c
index 9441da797bb9..6b6087dbb62a 100644
--- a/crypto/cts.c
+++ b/crypto/cts.c
@@ -423,7 +423,7 @@ static void __exit crypto_cts_module_exit(void)
423 crypto_unregister_template(&crypto_cts_tmpl); 423 crypto_unregister_template(&crypto_cts_tmpl);
424} 424}
425 425
426module_init(crypto_cts_module_init); 426subsys_initcall(crypto_cts_module_init);
427module_exit(crypto_cts_module_exit); 427module_exit(crypto_cts_module_exit);
428 428
429MODULE_LICENSE("Dual BSD/GPL"); 429MODULE_LICENSE("Dual BSD/GPL");
diff --git a/crypto/deflate.c b/crypto/deflate.c
index 94ec3b36a8e8..aab089cde1bf 100644
--- a/crypto/deflate.c
+++ b/crypto/deflate.c
@@ -334,7 +334,7 @@ static void __exit deflate_mod_fini(void)
334 crypto_unregister_scomps(scomp, ARRAY_SIZE(scomp)); 334 crypto_unregister_scomps(scomp, ARRAY_SIZE(scomp));
335} 335}
336 336
337module_init(deflate_mod_init); 337subsys_initcall(deflate_mod_init);
338module_exit(deflate_mod_fini); 338module_exit(deflate_mod_fini);
339 339
340MODULE_LICENSE("GPL"); 340MODULE_LICENSE("GPL");
diff --git a/crypto/des_generic.c b/crypto/des_generic.c
index ebec1fb08c45..d7a88b4fa611 100644
--- a/crypto/des_generic.c
+++ b/crypto/des_generic.c
@@ -990,7 +990,7 @@ static void __exit des_generic_mod_fini(void)
990 crypto_unregister_algs(des_algs, ARRAY_SIZE(des_algs)); 990 crypto_unregister_algs(des_algs, ARRAY_SIZE(des_algs));
991} 991}
992 992
993module_init(des_generic_mod_init); 993subsys_initcall(des_generic_mod_init);
994module_exit(des_generic_mod_fini); 994module_exit(des_generic_mod_fini);
995 995
996MODULE_LICENSE("GPL"); 996MODULE_LICENSE("GPL");
diff --git a/crypto/dh.c b/crypto/dh.c
index 09a44de4209d..ce77fb4ee8b3 100644
--- a/crypto/dh.c
+++ b/crypto/dh.c
@@ -236,7 +236,7 @@ static void dh_exit(void)
236 crypto_unregister_kpp(&dh); 236 crypto_unregister_kpp(&dh);
237} 237}
238 238
239module_init(dh_init); 239subsys_initcall(dh_init);
240module_exit(dh_exit); 240module_exit(dh_exit);
241MODULE_ALIAS_CRYPTO("dh"); 241MODULE_ALIAS_CRYPTO("dh");
242MODULE_LICENSE("GPL"); 242MODULE_LICENSE("GPL");
diff --git a/crypto/drbg.c b/crypto/drbg.c
index bc52d9562611..710b3046a4df 100644
--- a/crypto/drbg.c
+++ b/crypto/drbg.c
@@ -2039,7 +2039,7 @@ static void __exit drbg_exit(void)
2039 crypto_unregister_rngs(drbg_algs, (ARRAY_SIZE(drbg_cores) * 2)); 2039 crypto_unregister_rngs(drbg_algs, (ARRAY_SIZE(drbg_cores) * 2));
2040} 2040}
2041 2041
2042module_init(drbg_init); 2042subsys_initcall(drbg_init);
2043module_exit(drbg_exit); 2043module_exit(drbg_exit);
2044#ifndef CRYPTO_DRBG_HASH_STRING 2044#ifndef CRYPTO_DRBG_HASH_STRING
2045#define CRYPTO_DRBG_HASH_STRING "" 2045#define CRYPTO_DRBG_HASH_STRING ""
diff --git a/crypto/ecb.c b/crypto/ecb.c
index 0732715c8d91..de839129d151 100644
--- a/crypto/ecb.c
+++ b/crypto/ecb.c
@@ -101,7 +101,7 @@ static void __exit crypto_ecb_module_exit(void)
101 crypto_unregister_template(&crypto_ecb_tmpl); 101 crypto_unregister_template(&crypto_ecb_tmpl);
102} 102}
103 103
104module_init(crypto_ecb_module_init); 104subsys_initcall(crypto_ecb_module_init);
105module_exit(crypto_ecb_module_exit); 105module_exit(crypto_ecb_module_exit);
106 106
107MODULE_LICENSE("GPL"); 107MODULE_LICENSE("GPL");
diff --git a/crypto/ecdh.c b/crypto/ecdh.c
index bf6300175b9c..890092bd8989 100644
--- a/crypto/ecdh.c
+++ b/crypto/ecdh.c
@@ -166,7 +166,7 @@ static void ecdh_exit(void)
166 crypto_unregister_kpp(&ecdh); 166 crypto_unregister_kpp(&ecdh);
167} 167}
168 168
169module_init(ecdh_init); 169subsys_initcall(ecdh_init);
170module_exit(ecdh_exit); 170module_exit(ecdh_exit);
171MODULE_ALIAS_CRYPTO("ecdh"); 171MODULE_ALIAS_CRYPTO("ecdh");
172MODULE_LICENSE("GPL"); 172MODULE_LICENSE("GPL");
diff --git a/crypto/echainiv.c b/crypto/echainiv.c
index 77e607fdbfb7..e71d1bc8d850 100644
--- a/crypto/echainiv.c
+++ b/crypto/echainiv.c
@@ -174,7 +174,7 @@ static void __exit echainiv_module_exit(void)
174 crypto_unregister_template(&echainiv_tmpl); 174 crypto_unregister_template(&echainiv_tmpl);
175} 175}
176 176
177module_init(echainiv_module_init); 177subsys_initcall(echainiv_module_init);
178module_exit(echainiv_module_exit); 178module_exit(echainiv_module_exit);
179 179
180MODULE_LICENSE("GPL"); 180MODULE_LICENSE("GPL");
diff --git a/crypto/fcrypt.c b/crypto/fcrypt.c
index 77286ea28865..4e8704405a3b 100644
--- a/crypto/fcrypt.c
+++ b/crypto/fcrypt.c
@@ -414,7 +414,7 @@ static void __exit fcrypt_mod_fini(void)
414 crypto_unregister_alg(&fcrypt_alg); 414 crypto_unregister_alg(&fcrypt_alg);
415} 415}
416 416
417module_init(fcrypt_mod_init); 417subsys_initcall(fcrypt_mod_init);
418module_exit(fcrypt_mod_fini); 418module_exit(fcrypt_mod_fini);
419 419
420MODULE_LICENSE("Dual BSD/GPL"); 420MODULE_LICENSE("Dual BSD/GPL");
diff --git a/crypto/fips.c b/crypto/fips.c
index 9d627c1cf8bc..9dfed122d6da 100644
--- a/crypto/fips.c
+++ b/crypto/fips.c
@@ -74,5 +74,5 @@ static void __exit fips_exit(void)
74 crypto_proc_fips_exit(); 74 crypto_proc_fips_exit();
75} 75}
76 76
77module_init(fips_init); 77subsys_initcall(fips_init);
78module_exit(fips_exit); 78module_exit(fips_exit);
diff --git a/crypto/gcm.c b/crypto/gcm.c
index e1a11f529d25..ff498411b43f 100644
--- a/crypto/gcm.c
+++ b/crypto/gcm.c
@@ -1258,7 +1258,7 @@ static void __exit crypto_gcm_module_exit(void)
1258 ARRAY_SIZE(crypto_gcm_tmpls)); 1258 ARRAY_SIZE(crypto_gcm_tmpls));
1259} 1259}
1260 1260
1261module_init(crypto_gcm_module_init); 1261subsys_initcall(crypto_gcm_module_init);
1262module_exit(crypto_gcm_module_exit); 1262module_exit(crypto_gcm_module_exit);
1263 1263
1264MODULE_LICENSE("GPL"); 1264MODULE_LICENSE("GPL");
diff --git a/crypto/ghash-generic.c b/crypto/ghash-generic.c
index d9f192b953b2..e6307935413c 100644
--- a/crypto/ghash-generic.c
+++ b/crypto/ghash-generic.c
@@ -149,7 +149,7 @@ static void __exit ghash_mod_exit(void)
149 crypto_unregister_shash(&ghash_alg); 149 crypto_unregister_shash(&ghash_alg);
150} 150}
151 151
152module_init(ghash_mod_init); 152subsys_initcall(ghash_mod_init);
153module_exit(ghash_mod_exit); 153module_exit(ghash_mod_exit);
154 154
155MODULE_LICENSE("GPL"); 155MODULE_LICENSE("GPL");
diff --git a/crypto/hmac.c b/crypto/hmac.c
index e74730224f0a..4ceb3f1f0eb8 100644
--- a/crypto/hmac.c
+++ b/crypto/hmac.c
@@ -268,7 +268,7 @@ static void __exit hmac_module_exit(void)
268 crypto_unregister_template(&hmac_tmpl); 268 crypto_unregister_template(&hmac_tmpl);
269} 269}
270 270
271module_init(hmac_module_init); 271subsys_initcall(hmac_module_init);
272module_exit(hmac_module_exit); 272module_exit(hmac_module_exit);
273 273
274MODULE_LICENSE("GPL"); 274MODULE_LICENSE("GPL");
diff --git a/crypto/jitterentropy-kcapi.c b/crypto/jitterentropy-kcapi.c
index 787dccca3715..6ea1a270b8dc 100644
--- a/crypto/jitterentropy-kcapi.c
+++ b/crypto/jitterentropy-kcapi.c
@@ -198,7 +198,7 @@ static void __exit jent_mod_exit(void)
198 crypto_unregister_rng(&jent_alg); 198 crypto_unregister_rng(&jent_alg);
199} 199}
200 200
201module_init(jent_mod_init); 201subsys_initcall(jent_mod_init);
202module_exit(jent_mod_exit); 202module_exit(jent_mod_exit);
203 203
204MODULE_LICENSE("Dual BSD/GPL"); 204MODULE_LICENSE("Dual BSD/GPL");
diff --git a/crypto/keywrap.c b/crypto/keywrap.c
index a5cfe610d8f4..a155c88105ea 100644
--- a/crypto/keywrap.c
+++ b/crypto/keywrap.c
@@ -310,7 +310,7 @@ static void __exit crypto_kw_exit(void)
310 crypto_unregister_template(&crypto_kw_tmpl); 310 crypto_unregister_template(&crypto_kw_tmpl);
311} 311}
312 312
313module_init(crypto_kw_init); 313subsys_initcall(crypto_kw_init);
314module_exit(crypto_kw_exit); 314module_exit(crypto_kw_exit);
315 315
316MODULE_LICENSE("Dual BSD/GPL"); 316MODULE_LICENSE("Dual BSD/GPL");
diff --git a/crypto/khazad.c b/crypto/khazad.c
index 873eb5ded6d7..b50aa8a3ab4c 100644
--- a/crypto/khazad.c
+++ b/crypto/khazad.c
@@ -875,7 +875,7 @@ static void __exit khazad_mod_fini(void)
875} 875}
876 876
877 877
878module_init(khazad_mod_init); 878subsys_initcall(khazad_mod_init);
879module_exit(khazad_mod_fini); 879module_exit(khazad_mod_fini);
880 880
881MODULE_LICENSE("GPL"); 881MODULE_LICENSE("GPL");
diff --git a/crypto/lrw.c b/crypto/lrw.c
index b6666c595a68..0cc689ab6959 100644
--- a/crypto/lrw.c
+++ b/crypto/lrw.c
@@ -433,7 +433,7 @@ static void __exit crypto_module_exit(void)
433 crypto_unregister_template(&crypto_tmpl); 433 crypto_unregister_template(&crypto_tmpl);
434} 434}
435 435
436module_init(crypto_module_init); 436subsys_initcall(crypto_module_init);
437module_exit(crypto_module_exit); 437module_exit(crypto_module_exit);
438 438
439MODULE_LICENSE("GPL"); 439MODULE_LICENSE("GPL");
diff --git a/crypto/lz4.c b/crypto/lz4.c
index c160dfdbf2e0..1e35134d0a98 100644
--- a/crypto/lz4.c
+++ b/crypto/lz4.c
@@ -164,7 +164,7 @@ static void __exit lz4_mod_fini(void)
164 crypto_unregister_scomp(&scomp); 164 crypto_unregister_scomp(&scomp);
165} 165}
166 166
167module_init(lz4_mod_init); 167subsys_initcall(lz4_mod_init);
168module_exit(lz4_mod_fini); 168module_exit(lz4_mod_fini);
169 169
170MODULE_LICENSE("GPL"); 170MODULE_LICENSE("GPL");
diff --git a/crypto/lz4hc.c b/crypto/lz4hc.c
index 583b5e013d7a..4a220b628fe7 100644
--- a/crypto/lz4hc.c
+++ b/crypto/lz4hc.c
@@ -165,7 +165,7 @@ static void __exit lz4hc_mod_fini(void)
165 crypto_unregister_scomp(&scomp); 165 crypto_unregister_scomp(&scomp);
166} 166}
167 167
168module_init(lz4hc_mod_init); 168subsys_initcall(lz4hc_mod_init);
169module_exit(lz4hc_mod_fini); 169module_exit(lz4hc_mod_fini);
170 170
171MODULE_LICENSE("GPL"); 171MODULE_LICENSE("GPL");
diff --git a/crypto/lzo-rle.c b/crypto/lzo-rle.c
index ea9c75b1db49..4c82bf18440f 100644
--- a/crypto/lzo-rle.c
+++ b/crypto/lzo-rle.c
@@ -167,7 +167,7 @@ static void __exit lzorle_mod_fini(void)
167 crypto_unregister_scomp(&scomp); 167 crypto_unregister_scomp(&scomp);
168} 168}
169 169
170module_init(lzorle_mod_init); 170subsys_initcall(lzorle_mod_init);
171module_exit(lzorle_mod_fini); 171module_exit(lzorle_mod_fini);
172 172
173MODULE_LICENSE("GPL"); 173MODULE_LICENSE("GPL");
diff --git a/crypto/lzo.c b/crypto/lzo.c
index 218567d717d6..4a6ac8f247d0 100644
--- a/crypto/lzo.c
+++ b/crypto/lzo.c
@@ -167,7 +167,7 @@ static void __exit lzo_mod_fini(void)
167 crypto_unregister_scomp(&scomp); 167 crypto_unregister_scomp(&scomp);
168} 168}
169 169
170module_init(lzo_mod_init); 170subsys_initcall(lzo_mod_init);
171module_exit(lzo_mod_fini); 171module_exit(lzo_mod_fini);
172 172
173MODULE_LICENSE("GPL"); 173MODULE_LICENSE("GPL");
diff --git a/crypto/md4.c b/crypto/md4.c
index 9965ec40d9f9..9a1a228a0c69 100644
--- a/crypto/md4.c
+++ b/crypto/md4.c
@@ -232,7 +232,7 @@ static void __exit md4_mod_fini(void)
232 crypto_unregister_shash(&alg); 232 crypto_unregister_shash(&alg);
233} 233}
234 234
235module_init(md4_mod_init); 235subsys_initcall(md4_mod_init);
236module_exit(md4_mod_fini); 236module_exit(md4_mod_fini);
237 237
238MODULE_LICENSE("GPL"); 238MODULE_LICENSE("GPL");
diff --git a/crypto/md5.c b/crypto/md5.c
index 94dd78144ba3..221c2c0932f8 100644
--- a/crypto/md5.c
+++ b/crypto/md5.c
@@ -244,7 +244,7 @@ static void __exit md5_mod_fini(void)
244 crypto_unregister_shash(&alg); 244 crypto_unregister_shash(&alg);
245} 245}
246 246
247module_init(md5_mod_init); 247subsys_initcall(md5_mod_init);
248module_exit(md5_mod_fini); 248module_exit(md5_mod_fini);
249 249
250MODULE_LICENSE("GPL"); 250MODULE_LICENSE("GPL");
diff --git a/crypto/michael_mic.c b/crypto/michael_mic.c
index 46195e0d0f4d..538ae7933795 100644
--- a/crypto/michael_mic.c
+++ b/crypto/michael_mic.c
@@ -178,7 +178,7 @@ static void __exit michael_mic_exit(void)
178} 178}
179 179
180 180
181module_init(michael_mic_init); 181subsys_initcall(michael_mic_init);
182module_exit(michael_mic_exit); 182module_exit(michael_mic_exit);
183 183
184MODULE_LICENSE("GPL v2"); 184MODULE_LICENSE("GPL v2");
diff --git a/crypto/morus1280.c b/crypto/morus1280.c
index 0747732d5b78..f8734c6576af 100644
--- a/crypto/morus1280.c
+++ b/crypto/morus1280.c
@@ -532,7 +532,7 @@ static void __exit crypto_morus1280_module_exit(void)
532 crypto_unregister_aead(&crypto_morus1280_alg); 532 crypto_unregister_aead(&crypto_morus1280_alg);
533} 533}
534 534
535module_init(crypto_morus1280_module_init); 535subsys_initcall(crypto_morus1280_module_init);
536module_exit(crypto_morus1280_module_exit); 536module_exit(crypto_morus1280_module_exit);
537 537
538MODULE_LICENSE("GPL"); 538MODULE_LICENSE("GPL");
diff --git a/crypto/morus640.c b/crypto/morus640.c
index 1617a1eb8be1..ae5aa9482cb4 100644
--- a/crypto/morus640.c
+++ b/crypto/morus640.c
@@ -523,7 +523,7 @@ static void __exit crypto_morus640_module_exit(void)
523 crypto_unregister_aead(&crypto_morus640_alg); 523 crypto_unregister_aead(&crypto_morus640_alg);
524} 524}
525 525
526module_init(crypto_morus640_module_init); 526subsys_initcall(crypto_morus640_module_init);
527module_exit(crypto_morus640_module_exit); 527module_exit(crypto_morus640_module_exit);
528 528
529MODULE_LICENSE("GPL"); 529MODULE_LICENSE("GPL");
diff --git a/crypto/nhpoly1305.c b/crypto/nhpoly1305.c
index ec831a5594d8..9ab4e07cde4d 100644
--- a/crypto/nhpoly1305.c
+++ b/crypto/nhpoly1305.c
@@ -244,7 +244,7 @@ static void __exit nhpoly1305_mod_exit(void)
244 crypto_unregister_shash(&nhpoly1305_alg); 244 crypto_unregister_shash(&nhpoly1305_alg);
245} 245}
246 246
247module_init(nhpoly1305_mod_init); 247subsys_initcall(nhpoly1305_mod_init);
248module_exit(nhpoly1305_mod_exit); 248module_exit(nhpoly1305_mod_exit);
249 249
250MODULE_DESCRIPTION("NHPoly1305 ε-almost-∆-universal hash function"); 250MODULE_DESCRIPTION("NHPoly1305 ε-almost-∆-universal hash function");
diff --git a/crypto/ofb.c b/crypto/ofb.c
index 34b6e1f426f7..133ff4c7f2c6 100644
--- a/crypto/ofb.c
+++ b/crypto/ofb.c
@@ -95,7 +95,7 @@ static void __exit crypto_ofb_module_exit(void)
95 crypto_unregister_template(&crypto_ofb_tmpl); 95 crypto_unregister_template(&crypto_ofb_tmpl);
96} 96}
97 97
98module_init(crypto_ofb_module_init); 98subsys_initcall(crypto_ofb_module_init);
99module_exit(crypto_ofb_module_exit); 99module_exit(crypto_ofb_module_exit);
100 100
101MODULE_LICENSE("GPL"); 101MODULE_LICENSE("GPL");
diff --git a/crypto/pcbc.c b/crypto/pcbc.c
index 2fa03fc576fe..31b3ce948474 100644
--- a/crypto/pcbc.c
+++ b/crypto/pcbc.c
@@ -191,7 +191,7 @@ static void __exit crypto_pcbc_module_exit(void)
191 crypto_unregister_template(&crypto_pcbc_tmpl); 191 crypto_unregister_template(&crypto_pcbc_tmpl);
192} 192}
193 193
194module_init(crypto_pcbc_module_init); 194subsys_initcall(crypto_pcbc_module_init);
195module_exit(crypto_pcbc_module_exit); 195module_exit(crypto_pcbc_module_exit);
196 196
197MODULE_LICENSE("GPL"); 197MODULE_LICENSE("GPL");
diff --git a/crypto/pcrypt.c b/crypto/pcrypt.c
index d47cfc47b1b1..0e9ce329fd47 100644
--- a/crypto/pcrypt.c
+++ b/crypto/pcrypt.c
@@ -512,7 +512,7 @@ static void __exit pcrypt_exit(void)
512 crypto_unregister_template(&pcrypt_tmpl); 512 crypto_unregister_template(&pcrypt_tmpl);
513} 513}
514 514
515module_init(pcrypt_init); 515subsys_initcall(pcrypt_init);
516module_exit(pcrypt_exit); 516module_exit(pcrypt_exit);
517 517
518MODULE_LICENSE("GPL"); 518MODULE_LICENSE("GPL");
diff --git a/crypto/poly1305_generic.c b/crypto/poly1305_generic.c
index 2a06874204e8..adc40298c749 100644
--- a/crypto/poly1305_generic.c
+++ b/crypto/poly1305_generic.c
@@ -318,7 +318,7 @@ static void __exit poly1305_mod_exit(void)
318 crypto_unregister_shash(&poly1305_alg); 318 crypto_unregister_shash(&poly1305_alg);
319} 319}
320 320
321module_init(poly1305_mod_init); 321subsys_initcall(poly1305_mod_init);
322module_exit(poly1305_mod_exit); 322module_exit(poly1305_mod_exit);
323 323
324MODULE_LICENSE("GPL"); 324MODULE_LICENSE("GPL");
diff --git a/crypto/rmd128.c b/crypto/rmd128.c
index 5f4472256e27..faf4252c4b85 100644
--- a/crypto/rmd128.c
+++ b/crypto/rmd128.c
@@ -318,7 +318,7 @@ static void __exit rmd128_mod_fini(void)
318 crypto_unregister_shash(&alg); 318 crypto_unregister_shash(&alg);
319} 319}
320 320
321module_init(rmd128_mod_init); 321subsys_initcall(rmd128_mod_init);
322module_exit(rmd128_mod_fini); 322module_exit(rmd128_mod_fini);
323 323
324MODULE_LICENSE("GPL"); 324MODULE_LICENSE("GPL");
diff --git a/crypto/rmd160.c b/crypto/rmd160.c
index 737645344d1c..b33309916d4f 100644
--- a/crypto/rmd160.c
+++ b/crypto/rmd160.c
@@ -362,7 +362,7 @@ static void __exit rmd160_mod_fini(void)
362 crypto_unregister_shash(&alg); 362 crypto_unregister_shash(&alg);
363} 363}
364 364
365module_init(rmd160_mod_init); 365subsys_initcall(rmd160_mod_init);
366module_exit(rmd160_mod_fini); 366module_exit(rmd160_mod_fini);
367 367
368MODULE_LICENSE("GPL"); 368MODULE_LICENSE("GPL");
diff --git a/crypto/rmd256.c b/crypto/rmd256.c
index 0e9d30676a01..2a643250c9a5 100644
--- a/crypto/rmd256.c
+++ b/crypto/rmd256.c
@@ -337,7 +337,7 @@ static void __exit rmd256_mod_fini(void)
337 crypto_unregister_shash(&alg); 337 crypto_unregister_shash(&alg);
338} 338}
339 339
340module_init(rmd256_mod_init); 340subsys_initcall(rmd256_mod_init);
341module_exit(rmd256_mod_fini); 341module_exit(rmd256_mod_fini);
342 342
343MODULE_LICENSE("GPL"); 343MODULE_LICENSE("GPL");
diff --git a/crypto/rmd320.c b/crypto/rmd320.c
index 3ae1df5bb48c..2f062574fc8c 100644
--- a/crypto/rmd320.c
+++ b/crypto/rmd320.c
@@ -386,7 +386,7 @@ static void __exit rmd320_mod_fini(void)
386 crypto_unregister_shash(&alg); 386 crypto_unregister_shash(&alg);
387} 387}
388 388
389module_init(rmd320_mod_init); 389subsys_initcall(rmd320_mod_init);
390module_exit(rmd320_mod_fini); 390module_exit(rmd320_mod_fini);
391 391
392MODULE_LICENSE("GPL"); 392MODULE_LICENSE("GPL");
diff --git a/crypto/rsa.c b/crypto/rsa.c
index 5d427c1100d6..dcbb03431778 100644
--- a/crypto/rsa.c
+++ b/crypto/rsa.c
@@ -282,7 +282,7 @@ static void rsa_exit(void)
282 crypto_unregister_akcipher(&rsa); 282 crypto_unregister_akcipher(&rsa);
283} 283}
284 284
285module_init(rsa_init); 285subsys_initcall(rsa_init);
286module_exit(rsa_exit); 286module_exit(rsa_exit);
287MODULE_ALIAS_CRYPTO("rsa"); 287MODULE_ALIAS_CRYPTO("rsa");
288MODULE_LICENSE("GPL"); 288MODULE_LICENSE("GPL");
diff --git a/crypto/salsa20_generic.c b/crypto/salsa20_generic.c
index faed244be316..c81a44404086 100644
--- a/crypto/salsa20_generic.c
+++ b/crypto/salsa20_generic.c
@@ -203,7 +203,7 @@ static void __exit salsa20_generic_mod_fini(void)
203 crypto_unregister_skcipher(&alg); 203 crypto_unregister_skcipher(&alg);
204} 204}
205 205
206module_init(salsa20_generic_mod_init); 206subsys_initcall(salsa20_generic_mod_init);
207module_exit(salsa20_generic_mod_fini); 207module_exit(salsa20_generic_mod_fini);
208 208
209MODULE_LICENSE("GPL"); 209MODULE_LICENSE("GPL");
diff --git a/crypto/seed.c b/crypto/seed.c
index c6ba8438be43..a75ac50fa4fd 100644
--- a/crypto/seed.c
+++ b/crypto/seed.c
@@ -470,7 +470,7 @@ static void __exit seed_fini(void)
470 crypto_unregister_alg(&seed_alg); 470 crypto_unregister_alg(&seed_alg);
471} 471}
472 472
473module_init(seed_init); 473subsys_initcall(seed_init);
474module_exit(seed_fini); 474module_exit(seed_fini);
475 475
476MODULE_DESCRIPTION("SEED Cipher Algorithm"); 476MODULE_DESCRIPTION("SEED Cipher Algorithm");
diff --git a/crypto/seqiv.c b/crypto/seqiv.c
index ed1b0e9f2436..3f2fad615d26 100644
--- a/crypto/seqiv.c
+++ b/crypto/seqiv.c
@@ -211,7 +211,7 @@ static void __exit seqiv_module_exit(void)
211 crypto_unregister_template(&seqiv_tmpl); 211 crypto_unregister_template(&seqiv_tmpl);
212} 212}
213 213
214module_init(seqiv_module_init); 214subsys_initcall(seqiv_module_init);
215module_exit(seqiv_module_exit); 215module_exit(seqiv_module_exit);
216 216
217MODULE_LICENSE("GPL"); 217MODULE_LICENSE("GPL");
diff --git a/crypto/serpent_generic.c b/crypto/serpent_generic.c
index 7c3382facc82..ec4ec89ad108 100644
--- a/crypto/serpent_generic.c
+++ b/crypto/serpent_generic.c
@@ -664,7 +664,7 @@ static void __exit serpent_mod_fini(void)
664 crypto_unregister_algs(srp_algs, ARRAY_SIZE(srp_algs)); 664 crypto_unregister_algs(srp_algs, ARRAY_SIZE(srp_algs));
665} 665}
666 666
667module_init(serpent_mod_init); 667subsys_initcall(serpent_mod_init);
668module_exit(serpent_mod_fini); 668module_exit(serpent_mod_fini);
669 669
670MODULE_LICENSE("GPL"); 670MODULE_LICENSE("GPL");
diff --git a/crypto/sha1_generic.c b/crypto/sha1_generic.c
index 2af64ef81f40..1b806d4584b2 100644
--- a/crypto/sha1_generic.c
+++ b/crypto/sha1_generic.c
@@ -92,7 +92,7 @@ static void __exit sha1_generic_mod_fini(void)
92 crypto_unregister_shash(&alg); 92 crypto_unregister_shash(&alg);
93} 93}
94 94
95module_init(sha1_generic_mod_init); 95subsys_initcall(sha1_generic_mod_init);
96module_exit(sha1_generic_mod_fini); 96module_exit(sha1_generic_mod_fini);
97 97
98MODULE_LICENSE("GPL"); 98MODULE_LICENSE("GPL");
diff --git a/crypto/sha256_generic.c b/crypto/sha256_generic.c
index 1e5ba6649e8d..5844e9a469e8 100644
--- a/crypto/sha256_generic.c
+++ b/crypto/sha256_generic.c
@@ -301,7 +301,7 @@ static void __exit sha256_generic_mod_fini(void)
301 crypto_unregister_shashes(sha256_algs, ARRAY_SIZE(sha256_algs)); 301 crypto_unregister_shashes(sha256_algs, ARRAY_SIZE(sha256_algs));
302} 302}
303 303
304module_init(sha256_generic_mod_init); 304subsys_initcall(sha256_generic_mod_init);
305module_exit(sha256_generic_mod_fini); 305module_exit(sha256_generic_mod_fini);
306 306
307MODULE_LICENSE("GPL"); 307MODULE_LICENSE("GPL");
diff --git a/crypto/sha3_generic.c b/crypto/sha3_generic.c
index 7ed98367d4fb..60fd2be609d8 100644
--- a/crypto/sha3_generic.c
+++ b/crypto/sha3_generic.c
@@ -294,7 +294,7 @@ static void __exit sha3_generic_mod_fini(void)
294 crypto_unregister_shashes(algs, ARRAY_SIZE(algs)); 294 crypto_unregister_shashes(algs, ARRAY_SIZE(algs));
295} 295}
296 296
297module_init(sha3_generic_mod_init); 297subsys_initcall(sha3_generic_mod_init);
298module_exit(sha3_generic_mod_fini); 298module_exit(sha3_generic_mod_fini);
299 299
300MODULE_LICENSE("GPL"); 300MODULE_LICENSE("GPL");
diff --git a/crypto/sha512_generic.c b/crypto/sha512_generic.c
index 4097cd555eb6..0193ecb8ae10 100644
--- a/crypto/sha512_generic.c
+++ b/crypto/sha512_generic.c
@@ -223,7 +223,7 @@ static void __exit sha512_generic_mod_fini(void)
223 crypto_unregister_shashes(sha512_algs, ARRAY_SIZE(sha512_algs)); 223 crypto_unregister_shashes(sha512_algs, ARRAY_SIZE(sha512_algs));
224} 224}
225 225
226module_init(sha512_generic_mod_init); 226subsys_initcall(sha512_generic_mod_init);
227module_exit(sha512_generic_mod_fini); 227module_exit(sha512_generic_mod_fini);
228 228
229MODULE_LICENSE("GPL"); 229MODULE_LICENSE("GPL");
diff --git a/crypto/sm3_generic.c b/crypto/sm3_generic.c
index c0cf87ae7ef6..e227bcada2a2 100644
--- a/crypto/sm3_generic.c
+++ b/crypto/sm3_generic.c
@@ -199,7 +199,7 @@ static void __exit sm3_generic_mod_fini(void)
199 crypto_unregister_shash(&sm3_alg); 199 crypto_unregister_shash(&sm3_alg);
200} 200}
201 201
202module_init(sm3_generic_mod_init); 202subsys_initcall(sm3_generic_mod_init);
203module_exit(sm3_generic_mod_fini); 203module_exit(sm3_generic_mod_fini);
204 204
205MODULE_LICENSE("GPL v2"); 205MODULE_LICENSE("GPL v2");
diff --git a/crypto/sm4_generic.c b/crypto/sm4_generic.c
index c18eebfd5edd..71ffb343709a 100644
--- a/crypto/sm4_generic.c
+++ b/crypto/sm4_generic.c
@@ -237,7 +237,7 @@ static void __exit sm4_fini(void)
237 crypto_unregister_alg(&sm4_alg); 237 crypto_unregister_alg(&sm4_alg);
238} 238}
239 239
240module_init(sm4_init); 240subsys_initcall(sm4_init);
241module_exit(sm4_fini); 241module_exit(sm4_fini);
242 242
243MODULE_DESCRIPTION("SM4 Cipher Algorithm"); 243MODULE_DESCRIPTION("SM4 Cipher Algorithm");
diff --git a/crypto/streebog_generic.c b/crypto/streebog_generic.c
index b82fc3d79aa1..63663c3bab7e 100644
--- a/crypto/streebog_generic.c
+++ b/crypto/streebog_generic.c
@@ -1128,7 +1128,7 @@ static void __exit streebog_mod_fini(void)
1128 crypto_unregister_shashes(algs, ARRAY_SIZE(algs)); 1128 crypto_unregister_shashes(algs, ARRAY_SIZE(algs));
1129} 1129}
1130 1130
1131module_init(streebog_mod_init); 1131subsys_initcall(streebog_mod_init);
1132module_exit(streebog_mod_fini); 1132module_exit(streebog_mod_fini);
1133 1133
1134MODULE_LICENSE("GPL"); 1134MODULE_LICENSE("GPL");
diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c
index 1ea2d5007ff5..798253f05203 100644
--- a/crypto/tcrypt.c
+++ b/crypto/tcrypt.c
@@ -3053,7 +3053,7 @@ err_free_tv:
3053 */ 3053 */
3054static void __exit tcrypt_mod_fini(void) { } 3054static void __exit tcrypt_mod_fini(void) { }
3055 3055
3056module_init(tcrypt_mod_init); 3056subsys_initcall(tcrypt_mod_init);
3057module_exit(tcrypt_mod_fini); 3057module_exit(tcrypt_mod_fini);
3058 3058
3059module_param(alg, charp, 0); 3059module_param(alg, charp, 0);
diff --git a/crypto/tea.c b/crypto/tea.c
index b70b441c7d1e..786b589e1399 100644
--- a/crypto/tea.c
+++ b/crypto/tea.c
@@ -274,7 +274,7 @@ MODULE_ALIAS_CRYPTO("tea");
274MODULE_ALIAS_CRYPTO("xtea"); 274MODULE_ALIAS_CRYPTO("xtea");
275MODULE_ALIAS_CRYPTO("xeta"); 275MODULE_ALIAS_CRYPTO("xeta");
276 276
277module_init(tea_mod_init); 277subsys_initcall(tea_mod_init);
278module_exit(tea_mod_fini); 278module_exit(tea_mod_fini);
279 279
280MODULE_LICENSE("GPL"); 280MODULE_LICENSE("GPL");
diff --git a/crypto/tgr192.c b/crypto/tgr192.c
index f8e1d9f9938f..40020f8adc46 100644
--- a/crypto/tgr192.c
+++ b/crypto/tgr192.c
@@ -677,7 +677,7 @@ MODULE_ALIAS_CRYPTO("tgr192");
677MODULE_ALIAS_CRYPTO("tgr160"); 677MODULE_ALIAS_CRYPTO("tgr160");
678MODULE_ALIAS_CRYPTO("tgr128"); 678MODULE_ALIAS_CRYPTO("tgr128");
679 679
680module_init(tgr192_mod_init); 680subsys_initcall(tgr192_mod_init);
681module_exit(tgr192_mod_fini); 681module_exit(tgr192_mod_fini);
682 682
683MODULE_LICENSE("GPL"); 683MODULE_LICENSE("GPL");
diff --git a/crypto/twofish_generic.c b/crypto/twofish_generic.c
index 07e62433fbfb..dbac6e233285 100644
--- a/crypto/twofish_generic.c
+++ b/crypto/twofish_generic.c
@@ -205,7 +205,7 @@ static void __exit twofish_mod_fini(void)
205 crypto_unregister_alg(&alg); 205 crypto_unregister_alg(&alg);
206} 206}
207 207
208module_init(twofish_mod_init); 208subsys_initcall(twofish_mod_init);
209module_exit(twofish_mod_fini); 209module_exit(twofish_mod_fini);
210 210
211MODULE_LICENSE("GPL"); 211MODULE_LICENSE("GPL");
diff --git a/crypto/vmac.c b/crypto/vmac.c
index 5f436dfdfc61..f50a85060b39 100644
--- a/crypto/vmac.c
+++ b/crypto/vmac.c
@@ -690,7 +690,7 @@ static void __exit vmac_module_exit(void)
690 crypto_unregister_template(&vmac64_tmpl); 690 crypto_unregister_template(&vmac64_tmpl);
691} 691}
692 692
693module_init(vmac_module_init); 693subsys_initcall(vmac_module_init);
694module_exit(vmac_module_exit); 694module_exit(vmac_module_exit);
695 695
696MODULE_LICENSE("GPL"); 696MODULE_LICENSE("GPL");
diff --git a/crypto/wp512.c b/crypto/wp512.c
index 149e577fb772..1b8e502d999f 100644
--- a/crypto/wp512.c
+++ b/crypto/wp512.c
@@ -1168,7 +1168,7 @@ MODULE_ALIAS_CRYPTO("wp512");
1168MODULE_ALIAS_CRYPTO("wp384"); 1168MODULE_ALIAS_CRYPTO("wp384");
1169MODULE_ALIAS_CRYPTO("wp256"); 1169MODULE_ALIAS_CRYPTO("wp256");
1170 1170
1171module_init(wp512_mod_init); 1171subsys_initcall(wp512_mod_init);
1172module_exit(wp512_mod_fini); 1172module_exit(wp512_mod_fini);
1173 1173
1174MODULE_LICENSE("GPL"); 1174MODULE_LICENSE("GPL");
diff --git a/crypto/xcbc.c b/crypto/xcbc.c
index c055f57fab11..94ca694ef091 100644
--- a/crypto/xcbc.c
+++ b/crypto/xcbc.c
@@ -282,7 +282,7 @@ static void __exit crypto_xcbc_module_exit(void)
282 crypto_unregister_template(&crypto_xcbc_tmpl); 282 crypto_unregister_template(&crypto_xcbc_tmpl);
283} 283}
284 284
285module_init(crypto_xcbc_module_init); 285subsys_initcall(crypto_xcbc_module_init);
286module_exit(crypto_xcbc_module_exit); 286module_exit(crypto_xcbc_module_exit);
287 287
288MODULE_LICENSE("GPL"); 288MODULE_LICENSE("GPL");
diff --git a/crypto/xts.c b/crypto/xts.c
index 847f54f76789..aed11e63ca31 100644
--- a/crypto/xts.c
+++ b/crypto/xts.c
@@ -359,7 +359,7 @@ static void __exit crypto_module_exit(void)
359 crypto_unregister_template(&crypto_tmpl); 359 crypto_unregister_template(&crypto_tmpl);
360} 360}
361 361
362module_init(crypto_module_init); 362subsys_initcall(crypto_module_init);
363module_exit(crypto_module_exit); 363module_exit(crypto_module_exit);
364 364
365MODULE_LICENSE("GPL"); 365MODULE_LICENSE("GPL");
diff --git a/crypto/zstd.c b/crypto/zstd.c
index 9a76b3ed8b8b..2c04055e407f 100644
--- a/crypto/zstd.c
+++ b/crypto/zstd.c
@@ -257,7 +257,7 @@ static void __exit zstd_mod_fini(void)
257 crypto_unregister_scomp(&scomp); 257 crypto_unregister_scomp(&scomp);
258} 258}
259 259
260module_init(zstd_mod_init); 260subsys_initcall(zstd_mod_init);
261module_exit(zstd_mod_fini); 261module_exit(zstd_mod_fini);
262 262
263MODULE_LICENSE("GPL"); 263MODULE_LICENSE("GPL");