summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Robinson <pbrobinson@gmail.com>2019-05-30 16:44:18 +0100
committerPeter Robinson <pbrobinson@gmail.com>2019-05-30 16:44:18 +0100
commit38bd9ab1783d97937192aa88265e136cb7d52f45 (patch)
tree1513bf4b49bfe1a5a14f98fdd53dbca5d92d9826
parentd725b49d1a9e8ef7a93b3c6ce015ba613ccf4897 (diff)
downloadkernel-38bd9ab1783d97937192aa88265e136cb7d52f45.tar.gz
kernel-38bd9ab1783d97937192aa88265e136cb7d52f45.tar.xz
kernel-38bd9ab1783d97937192aa88265e136cb7d52f45.zip
revert crypto generic initcalls run early patch until upstream works out the issue with ARMv7
-rw-r--r--0001-Revert-crypto-run-initcalls-for-generic-implementati.patch1179
-rw-r--r--kernel.spec3
2 files changed, 1181 insertions, 1 deletions
diff --git a/0001-Revert-crypto-run-initcalls-for-generic-implementati.patch b/0001-Revert-crypto-run-initcalls-for-generic-implementati.patch
new file mode 100644
index 000000000..d5d26f3de
--- /dev/null
+++ b/0001-Revert-crypto-run-initcalls-for-generic-implementati.patch
@@ -0,0 +1,1179 @@
+From 9b34cb89c2f51c34870bee23ef2ff91eb257d2a0 Mon Sep 17 00:00:00 2001
+From: Peter Robinson <pbrobinson@gmail.com>
+Date: Wed, 29 May 2019 16:31:12 +0100
+Subject: [PATCH] Revert "crypto: run initcalls for generic implementations
+ earlier"
+
+This reverts commit c4741b23059794bd99beef0f700103b0d983b3fd.
+---
+ crypto/842.c | 2 +-
+ crypto/adiantum.c | 2 +-
+ crypto/aegis128.c | 2 +-
+ crypto/aegis128l.c | 2 +-
+ crypto/aegis256.c | 2 +-
+ crypto/aes_generic.c | 2 +-
+ crypto/algboss.c | 8 +-------
+ crypto/ansi_cprng.c | 2 +-
+ crypto/anubis.c | 2 +-
+ crypto/arc4.c | 2 +-
+ crypto/authenc.c | 2 +-
+ crypto/authencesn.c | 2 +-
+ crypto/blowfish_generic.c | 2 +-
+ crypto/camellia_generic.c | 2 +-
+ crypto/cast5_generic.c | 2 +-
+ crypto/cast6_generic.c | 2 +-
+ crypto/cbc.c | 2 +-
+ crypto/ccm.c | 2 +-
+ crypto/cfb.c | 2 +-
+ crypto/chacha20poly1305.c | 2 +-
+ crypto/chacha_generic.c | 2 +-
+ crypto/cmac.c | 2 +-
+ crypto/crc32_generic.c | 2 +-
+ crypto/crc32c_generic.c | 2 +-
+ crypto/crct10dif_generic.c | 2 +-
+ crypto/crypto_null.c | 2 +-
+ crypto/ctr.c | 2 +-
+ crypto/cts.c | 2 +-
+ crypto/deflate.c | 2 +-
+ crypto/des_generic.c | 2 +-
+ crypto/dh.c | 2 +-
+ crypto/drbg.c | 2 +-
+ crypto/ecb.c | 2 +-
+ crypto/ecdh.c | 2 +-
+ crypto/echainiv.c | 2 +-
+ crypto/fcrypt.c | 2 +-
+ crypto/fips.c | 2 +-
+ crypto/gcm.c | 2 +-
+ crypto/ghash-generic.c | 2 +-
+ crypto/hmac.c | 2 +-
+ crypto/jitterentropy-kcapi.c | 2 +-
+ crypto/keywrap.c | 2 +-
+ crypto/khazad.c | 2 +-
+ crypto/lrw.c | 2 +-
+ crypto/lz4.c | 2 +-
+ crypto/lz4hc.c | 2 +-
+ crypto/lzo-rle.c | 2 +-
+ crypto/lzo.c | 2 +-
+ crypto/md4.c | 2 +-
+ crypto/md5.c | 2 +-
+ crypto/michael_mic.c | 2 +-
+ crypto/morus1280.c | 2 +-
+ crypto/morus640.c | 2 +-
+ crypto/nhpoly1305.c | 2 +-
+ crypto/ofb.c | 2 +-
+ crypto/pcbc.c | 2 +-
+ crypto/pcrypt.c | 2 +-
+ crypto/poly1305_generic.c | 2 +-
+ crypto/rmd128.c | 2 +-
+ crypto/rmd160.c | 2 +-
+ crypto/rmd256.c | 2 +-
+ crypto/rmd320.c | 2 +-
+ crypto/rsa.c | 2 +-
+ crypto/salsa20_generic.c | 2 +-
+ crypto/seed.c | 2 +-
+ crypto/seqiv.c | 2 +-
+ crypto/serpent_generic.c | 2 +-
+ crypto/sha1_generic.c | 2 +-
+ crypto/sha256_generic.c | 2 +-
+ crypto/sha3_generic.c | 2 +-
+ crypto/sha512_generic.c | 2 +-
+ crypto/sm3_generic.c | 2 +-
+ crypto/sm4_generic.c | 2 +-
+ crypto/streebog_generic.c | 2 +-
+ crypto/tcrypt.c | 2 +-
+ crypto/tea.c | 2 +-
+ crypto/tgr192.c | 2 +-
+ crypto/twofish_generic.c | 2 +-
+ crypto/vmac.c | 2 +-
+ crypto/wp512.c | 2 +-
+ crypto/xcbc.c | 2 +-
+ crypto/xts.c | 2 +-
+ crypto/zstd.c | 2 +-
+ 83 files changed, 83 insertions(+), 89 deletions(-)
+
+diff --git a/crypto/842.c b/crypto/842.c
+index 5f98393b65d1..bc26dc942821 100644
+--- a/crypto/842.c
++++ b/crypto/842.c
+@@ -144,7 +144,7 @@ static int __init crypto842_mod_init(void)
+
+ return ret;
+ }
+-subsys_initcall(crypto842_mod_init);
++module_init(crypto842_mod_init);
+
+ static void __exit crypto842_mod_exit(void)
+ {
+diff --git a/crypto/adiantum.c b/crypto/adiantum.c
+index 395a3ddd3707..36233ea20046 100644
+--- a/crypto/adiantum.c
++++ b/crypto/adiantum.c
+@@ -658,7 +658,7 @@ static void __exit adiantum_module_exit(void)
+ crypto_unregister_template(&adiantum_tmpl);
+ }
+
+-subsys_initcall(adiantum_module_init);
++module_init(adiantum_module_init);
+ module_exit(adiantum_module_exit);
+
+ MODULE_DESCRIPTION("Adiantum length-preserving encryption mode");
+diff --git a/crypto/aegis128.c b/crypto/aegis128.c
+index d78f77fc5dd1..3718a8341303 100644
+--- a/crypto/aegis128.c
++++ b/crypto/aegis128.c
+@@ -448,7 +448,7 @@ static void __exit crypto_aegis128_module_exit(void)
+ crypto_unregister_aead(&crypto_aegis128_alg);
+ }
+
+-subsys_initcall(crypto_aegis128_module_init);
++module_init(crypto_aegis128_module_init);
+ module_exit(crypto_aegis128_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/aegis128l.c b/crypto/aegis128l.c
+index 9bca3d619a22..275a8616d71b 100644
+--- a/crypto/aegis128l.c
++++ b/crypto/aegis128l.c
+@@ -512,7 +512,7 @@ static void __exit crypto_aegis128l_module_exit(void)
+ crypto_unregister_aead(&crypto_aegis128l_alg);
+ }
+
+-subsys_initcall(crypto_aegis128l_module_init);
++module_init(crypto_aegis128l_module_init);
+ module_exit(crypto_aegis128l_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/aegis256.c b/crypto/aegis256.c
+index b47fd39595ad..ecd6b7f34a2d 100644
+--- a/crypto/aegis256.c
++++ b/crypto/aegis256.c
+@@ -463,7 +463,7 @@ static void __exit crypto_aegis256_module_exit(void)
+ crypto_unregister_aead(&crypto_aegis256_alg);
+ }
+
+-subsys_initcall(crypto_aegis256_module_init);
++module_init(crypto_aegis256_module_init);
+ module_exit(crypto_aegis256_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/aes_generic.c b/crypto/aes_generic.c
+index f217568917e4..fddcbe3edb0a 100644
+--- a/crypto/aes_generic.c
++++ b/crypto/aes_generic.c
+@@ -1470,7 +1470,7 @@ static void __exit aes_fini(void)
+ crypto_unregister_alg(&aes_alg);
+ }
+
+-subsys_initcall(aes_init);
++module_init(aes_init);
+ module_exit(aes_fini);
+
+ MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm");
+diff --git a/crypto/algboss.c b/crypto/algboss.c
+index bb97cfb38836..527b44d0af21 100644
+--- a/crypto/algboss.c
++++ b/crypto/algboss.c
+@@ -296,13 +296,7 @@ static void __exit cryptomgr_exit(void)
+ BUG_ON(err);
+ }
+
+-/*
+- * This is arch_initcall() so that the crypto self-tests are run on algorithms
+- * registered early by subsys_initcall(). subsys_initcall() is needed for
+- * generic implementations so that they're available for comparison tests when
+- * other implementations are registered later by module_init().
+- */
+-arch_initcall(cryptomgr_init);
++subsys_initcall(cryptomgr_init);
+ module_exit(cryptomgr_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/ansi_cprng.c b/crypto/ansi_cprng.c
+index c475c1129ff2..b19daa3c5dfa 100644
+--- a/crypto/ansi_cprng.c
++++ b/crypto/ansi_cprng.c
+@@ -466,7 +466,7 @@ MODULE_DESCRIPTION("Software Pseudo Random Number Generator");
+ MODULE_AUTHOR("Neil Horman <nhorman@tuxdriver.com>");
+ module_param(dbg, int, 0);
+ MODULE_PARM_DESC(dbg, "Boolean to enable debugging (0/1 == off/on)");
+-subsys_initcall(prng_mod_init);
++module_init(prng_mod_init);
+ module_exit(prng_mod_fini);
+ MODULE_ALIAS_CRYPTO("stdrng");
+ MODULE_ALIAS_CRYPTO("ansi_cprng");
+diff --git a/crypto/anubis.c b/crypto/anubis.c
+index 673927de0eb9..4bb187c2a902 100644
+--- a/crypto/anubis.c
++++ b/crypto/anubis.c
+@@ -699,7 +699,7 @@ static void __exit anubis_mod_fini(void)
+ crypto_unregister_alg(&anubis_alg);
+ }
+
+-subsys_initcall(anubis_mod_init);
++module_init(anubis_mod_init);
+ module_exit(anubis_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/arc4.c b/crypto/arc4.c
+index 2233d36456e2..6c93342e3405 100644
+--- a/crypto/arc4.c
++++ b/crypto/arc4.c
+@@ -163,7 +163,7 @@ static void __exit arc4_exit(void)
+ crypto_unregister_skcipher(&arc4_skcipher);
+ }
+
+-subsys_initcall(arc4_init);
++module_init(arc4_init);
+ module_exit(arc4_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/authenc.c b/crypto/authenc.c
+index b3eddac7fa3a..4be293a4b5f0 100644
+--- a/crypto/authenc.c
++++ b/crypto/authenc.c
+@@ -508,7 +508,7 @@ static void __exit crypto_authenc_module_exit(void)
+ crypto_unregister_template(&crypto_authenc_tmpl);
+ }
+
+-subsys_initcall(crypto_authenc_module_init);
++module_init(crypto_authenc_module_init);
+ module_exit(crypto_authenc_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/authencesn.c b/crypto/authencesn.c
+index 58074308e535..4741fe89ba2c 100644
+--- a/crypto/authencesn.c
++++ b/crypto/authencesn.c
+@@ -523,7 +523,7 @@ static void __exit crypto_authenc_esn_module_exit(void)
+ crypto_unregister_template(&crypto_authenc_esn_tmpl);
+ }
+
+-subsys_initcall(crypto_authenc_esn_module_init);
++module_init(crypto_authenc_esn_module_init);
+ module_exit(crypto_authenc_esn_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/blowfish_generic.c b/crypto/blowfish_generic.c
+index 8548ced8b074..87b392a77a93 100644
+--- a/crypto/blowfish_generic.c
++++ b/crypto/blowfish_generic.c
+@@ -133,7 +133,7 @@ static void __exit blowfish_mod_fini(void)
+ crypto_unregister_alg(&alg);
+ }
+
+-subsys_initcall(blowfish_mod_init);
++module_init(blowfish_mod_init);
+ module_exit(blowfish_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/camellia_generic.c b/crypto/camellia_generic.c
+index b6a1121e2478..48029b49f40a 100644
+--- a/crypto/camellia_generic.c
++++ b/crypto/camellia_generic.c
+@@ -1080,7 +1080,7 @@ static void __exit camellia_fini(void)
+ crypto_unregister_alg(&camellia_alg);
+ }
+
+-subsys_initcall(camellia_init);
++module_init(camellia_init);
+ module_exit(camellia_fini);
+
+ MODULE_DESCRIPTION("Camellia Cipher Algorithm");
+diff --git a/crypto/cast5_generic.c b/crypto/cast5_generic.c
+index 24bc7d4e33be..66169c178314 100644
+--- a/crypto/cast5_generic.c
++++ b/crypto/cast5_generic.c
+@@ -543,7 +543,7 @@ static void __exit cast5_mod_fini(void)
+ crypto_unregister_alg(&alg);
+ }
+
+-subsys_initcall(cast5_mod_init);
++module_init(cast5_mod_init);
+ module_exit(cast5_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/cast6_generic.c b/crypto/cast6_generic.c
+index edd59cc34991..c8e5ec69790e 100644
+--- a/crypto/cast6_generic.c
++++ b/crypto/cast6_generic.c
+@@ -285,7 +285,7 @@ static void __exit cast6_mod_fini(void)
+ crypto_unregister_alg(&alg);
+ }
+
+-subsys_initcall(cast6_mod_init);
++module_init(cast6_mod_init);
+ module_exit(cast6_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/cbc.c b/crypto/cbc.c
+index 129f79d03365..d12efaac9230 100644
+--- a/crypto/cbc.c
++++ b/crypto/cbc.c
+@@ -98,7 +98,7 @@ static void __exit crypto_cbc_module_exit(void)
+ crypto_unregister_template(&crypto_cbc_tmpl);
+ }
+
+-subsys_initcall(crypto_cbc_module_init);
++module_init(crypto_cbc_module_init);
+ module_exit(crypto_cbc_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/ccm.c b/crypto/ccm.c
+index c1ef9d0b4271..f4caa149b9d2 100644
+--- a/crypto/ccm.c
++++ b/crypto/ccm.c
+@@ -1006,7 +1006,7 @@ static void __exit crypto_ccm_module_exit(void)
+ ARRAY_SIZE(crypto_ccm_tmpls));
+ }
+
+-subsys_initcall(crypto_ccm_module_init);
++module_init(crypto_ccm_module_init);
+ module_exit(crypto_ccm_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/cfb.c b/crypto/cfb.c
+index 7b68fbb61732..03ac847f6d6a 100644
+--- a/crypto/cfb.c
++++ b/crypto/cfb.c
+@@ -243,7 +243,7 @@ static void __exit crypto_cfb_module_exit(void)
+ crypto_unregister_template(&crypto_cfb_tmpl);
+ }
+
+-subsys_initcall(crypto_cfb_module_init);
++module_init(crypto_cfb_module_init);
+ module_exit(crypto_cfb_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/chacha20poly1305.c b/crypto/chacha20poly1305.c
+index e38a2d61819a..279d816ab51d 100644
+--- a/crypto/chacha20poly1305.c
++++ b/crypto/chacha20poly1305.c
+@@ -725,7 +725,7 @@ static void __exit chacha20poly1305_module_exit(void)
+ ARRAY_SIZE(rfc7539_tmpls));
+ }
+
+-subsys_initcall(chacha20poly1305_module_init);
++module_init(chacha20poly1305_module_init);
+ module_exit(chacha20poly1305_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/chacha_generic.c b/crypto/chacha_generic.c
+index d2ec04997832..a7fae9b73ec4 100644
+--- a/crypto/chacha_generic.c
++++ b/crypto/chacha_generic.c
+@@ -201,7 +201,7 @@ static void __exit chacha_generic_mod_fini(void)
+ crypto_unregister_skciphers(algs, ARRAY_SIZE(algs));
+ }
+
+-subsys_initcall(chacha_generic_mod_init);
++module_init(chacha_generic_mod_init);
+ module_exit(chacha_generic_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/cmac.c b/crypto/cmac.c
+index c60b6c011ec6..16301f52858c 100644
+--- a/crypto/cmac.c
++++ b/crypto/cmac.c
+@@ -313,7 +313,7 @@ static void __exit crypto_cmac_module_exit(void)
+ crypto_unregister_template(&crypto_cmac_tmpl);
+ }
+
+-subsys_initcall(crypto_cmac_module_init);
++module_init(crypto_cmac_module_init);
+ module_exit(crypto_cmac_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/crc32_generic.c b/crypto/crc32_generic.c
+index 9e97912280bd..00facd27bcc2 100644
+--- a/crypto/crc32_generic.c
++++ b/crypto/crc32_generic.c
+@@ -146,7 +146,7 @@ static void __exit crc32_mod_fini(void)
+ crypto_unregister_shash(&alg);
+ }
+
+-subsys_initcall(crc32_mod_init);
++module_init(crc32_mod_init);
+ module_exit(crc32_mod_fini);
+
+ MODULE_AUTHOR("Alexander Boyko <alexander_boyko@xyratex.com>");
+diff --git a/crypto/crc32c_generic.c b/crypto/crc32c_generic.c
+index ad26f15d4c7b..7283066ecc98 100644
+--- a/crypto/crc32c_generic.c
++++ b/crypto/crc32c_generic.c
+@@ -165,7 +165,7 @@ static void __exit crc32c_mod_fini(void)
+ crypto_unregister_shash(&alg);
+ }
+
+-subsys_initcall(crc32c_mod_init);
++module_init(crc32c_mod_init);
+ module_exit(crc32c_mod_fini);
+
+ MODULE_AUTHOR("Clay Haapala <chaapala@cisco.com>");
+diff --git a/crypto/crct10dif_generic.c b/crypto/crct10dif_generic.c
+index d90c0070710e..d08048ae5552 100644
+--- a/crypto/crct10dif_generic.c
++++ b/crypto/crct10dif_generic.c
+@@ -112,7 +112,7 @@ static void __exit crct10dif_mod_fini(void)
+ crypto_unregister_shash(&alg);
+ }
+
+-subsys_initcall(crct10dif_mod_init);
++module_init(crct10dif_mod_init);
+ module_exit(crct10dif_mod_fini);
+
+ MODULE_AUTHOR("Tim Chen <tim.c.chen@linux.intel.com>");
+diff --git a/crypto/crypto_null.c b/crypto/crypto_null.c
+index 9320d4eaa4a8..01630a9c7e01 100644
+--- a/crypto/crypto_null.c
++++ b/crypto/crypto_null.c
+@@ -220,7 +220,7 @@ static void __exit crypto_null_mod_fini(void)
+ crypto_unregister_skcipher(&skcipher_null);
+ }
+
+-subsys_initcall(crypto_null_mod_init);
++module_init(crypto_null_mod_init);
+ module_exit(crypto_null_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/ctr.c b/crypto/ctr.c
+index 52cdf2c5605f..ec8f8b67473a 100644
+--- a/crypto/ctr.c
++++ b/crypto/ctr.c
+@@ -384,7 +384,7 @@ static void __exit crypto_ctr_module_exit(void)
+ ARRAY_SIZE(crypto_ctr_tmpls));
+ }
+
+-subsys_initcall(crypto_ctr_module_init);
++module_init(crypto_ctr_module_init);
+ module_exit(crypto_ctr_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/cts.c b/crypto/cts.c
+index 6b6087dbb62a..9441da797bb9 100644
+--- a/crypto/cts.c
++++ b/crypto/cts.c
+@@ -423,7 +423,7 @@ static void __exit crypto_cts_module_exit(void)
+ crypto_unregister_template(&crypto_cts_tmpl);
+ }
+
+-subsys_initcall(crypto_cts_module_init);
++module_init(crypto_cts_module_init);
+ module_exit(crypto_cts_module_exit);
+
+ MODULE_LICENSE("Dual BSD/GPL");
+diff --git a/crypto/deflate.c b/crypto/deflate.c
+index aab089cde1bf..94ec3b36a8e8 100644
+--- a/crypto/deflate.c
++++ b/crypto/deflate.c
+@@ -334,7 +334,7 @@ static void __exit deflate_mod_fini(void)
+ crypto_unregister_scomps(scomp, ARRAY_SIZE(scomp));
+ }
+
+-subsys_initcall(deflate_mod_init);
++module_init(deflate_mod_init);
+ module_exit(deflate_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/des_generic.c b/crypto/des_generic.c
+index d7a88b4fa611..ebec1fb08c45 100644
+--- a/crypto/des_generic.c
++++ b/crypto/des_generic.c
+@@ -990,7 +990,7 @@ static void __exit des_generic_mod_fini(void)
+ crypto_unregister_algs(des_algs, ARRAY_SIZE(des_algs));
+ }
+
+-subsys_initcall(des_generic_mod_init);
++module_init(des_generic_mod_init);
+ module_exit(des_generic_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/dh.c b/crypto/dh.c
+index ce77fb4ee8b3..09a44de4209d 100644
+--- a/crypto/dh.c
++++ b/crypto/dh.c
+@@ -236,7 +236,7 @@ static void dh_exit(void)
+ crypto_unregister_kpp(&dh);
+ }
+
+-subsys_initcall(dh_init);
++module_init(dh_init);
+ module_exit(dh_exit);
+ MODULE_ALIAS_CRYPTO("dh");
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/drbg.c b/crypto/drbg.c
+index 2a5b16bb000c..8115531bf749 100644
+--- a/crypto/drbg.c
++++ b/crypto/drbg.c
+@@ -2038,7 +2038,7 @@ static void __exit drbg_exit(void)
+ crypto_unregister_rngs(drbg_algs, (ARRAY_SIZE(drbg_cores) * 2));
+ }
+
+-subsys_initcall(drbg_init);
++module_init(drbg_init);
+ module_exit(drbg_exit);
+ #ifndef CRYPTO_DRBG_HASH_STRING
+ #define CRYPTO_DRBG_HASH_STRING ""
+diff --git a/crypto/ecb.c b/crypto/ecb.c
+index de839129d151..0732715c8d91 100644
+--- a/crypto/ecb.c
++++ b/crypto/ecb.c
+@@ -101,7 +101,7 @@ static void __exit crypto_ecb_module_exit(void)
+ crypto_unregister_template(&crypto_ecb_tmpl);
+ }
+
+-subsys_initcall(crypto_ecb_module_init);
++module_init(crypto_ecb_module_init);
+ module_exit(crypto_ecb_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/ecdh.c b/crypto/ecdh.c
+index 890092bd8989..bf6300175b9c 100644
+--- a/crypto/ecdh.c
++++ b/crypto/ecdh.c
+@@ -166,7 +166,7 @@ static void ecdh_exit(void)
+ crypto_unregister_kpp(&ecdh);
+ }
+
+-subsys_initcall(ecdh_init);
++module_init(ecdh_init);
+ module_exit(ecdh_exit);
+ MODULE_ALIAS_CRYPTO("ecdh");
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/echainiv.c b/crypto/echainiv.c
+index e71d1bc8d850..77e607fdbfb7 100644
+--- a/crypto/echainiv.c
++++ b/crypto/echainiv.c
+@@ -174,7 +174,7 @@ static void __exit echainiv_module_exit(void)
+ crypto_unregister_template(&echainiv_tmpl);
+ }
+
+-subsys_initcall(echainiv_module_init);
++module_init(echainiv_module_init);
+ module_exit(echainiv_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/fcrypt.c b/crypto/fcrypt.c
+index 4e8704405a3b..77286ea28865 100644
+--- a/crypto/fcrypt.c
++++ b/crypto/fcrypt.c
+@@ -414,7 +414,7 @@ static void __exit fcrypt_mod_fini(void)
+ crypto_unregister_alg(&fcrypt_alg);
+ }
+
+-subsys_initcall(fcrypt_mod_init);
++module_init(fcrypt_mod_init);
+ module_exit(fcrypt_mod_fini);
+
+ MODULE_LICENSE("Dual BSD/GPL");
+diff --git a/crypto/fips.c b/crypto/fips.c
+index 9dfed122d6da..9d627c1cf8bc 100644
+--- a/crypto/fips.c
++++ b/crypto/fips.c
+@@ -74,5 +74,5 @@ static void __exit fips_exit(void)
+ crypto_proc_fips_exit();
+ }
+
+-subsys_initcall(fips_init);
++module_init(fips_init);
+ module_exit(fips_exit);
+diff --git a/crypto/gcm.c b/crypto/gcm.c
+index 33f45a980967..eea16e726ede 100644
+--- a/crypto/gcm.c
++++ b/crypto/gcm.c
+@@ -1246,7 +1246,7 @@ static void __exit crypto_gcm_module_exit(void)
+ ARRAY_SIZE(crypto_gcm_tmpls));
+ }
+
+-subsys_initcall(crypto_gcm_module_init);
++module_init(crypto_gcm_module_init);
+ module_exit(crypto_gcm_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/ghash-generic.c b/crypto/ghash-generic.c
+index e6307935413c..d9f192b953b2 100644
+--- a/crypto/ghash-generic.c
++++ b/crypto/ghash-generic.c
+@@ -149,7 +149,7 @@ static void __exit ghash_mod_exit(void)
+ crypto_unregister_shash(&ghash_alg);
+ }
+
+-subsys_initcall(ghash_mod_init);
++module_init(ghash_mod_init);
+ module_exit(ghash_mod_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/hmac.c b/crypto/hmac.c
+index a68c1266121f..ab84027abe38 100644
+--- a/crypto/hmac.c
++++ b/crypto/hmac.c
+@@ -257,7 +257,7 @@ static void __exit hmac_module_exit(void)
+ crypto_unregister_template(&hmac_tmpl);
+ }
+
+-subsys_initcall(hmac_module_init);
++module_init(hmac_module_init);
+ module_exit(hmac_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/jitterentropy-kcapi.c b/crypto/jitterentropy-kcapi.c
+index 6ea1a270b8dc..787dccca3715 100644
+--- a/crypto/jitterentropy-kcapi.c
++++ b/crypto/jitterentropy-kcapi.c
+@@ -198,7 +198,7 @@ static void __exit jent_mod_exit(void)
+ crypto_unregister_rng(&jent_alg);
+ }
+
+-subsys_initcall(jent_mod_init);
++module_init(jent_mod_init);
+ module_exit(jent_mod_exit);
+
+ MODULE_LICENSE("Dual BSD/GPL");
+diff --git a/crypto/keywrap.c b/crypto/keywrap.c
+index a155c88105ea..a5cfe610d8f4 100644
+--- a/crypto/keywrap.c
++++ b/crypto/keywrap.c
+@@ -310,7 +310,7 @@ static void __exit crypto_kw_exit(void)
+ crypto_unregister_template(&crypto_kw_tmpl);
+ }
+
+-subsys_initcall(crypto_kw_init);
++module_init(crypto_kw_init);
+ module_exit(crypto_kw_exit);
+
+ MODULE_LICENSE("Dual BSD/GPL");
+diff --git a/crypto/khazad.c b/crypto/khazad.c
+index b50aa8a3ab4c..873eb5ded6d7 100644
+--- a/crypto/khazad.c
++++ b/crypto/khazad.c
+@@ -875,7 +875,7 @@ static void __exit khazad_mod_fini(void)
+ }
+
+
+-subsys_initcall(khazad_mod_init);
++module_init(khazad_mod_init);
+ module_exit(khazad_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/lrw.c b/crypto/lrw.c
+index fa302f3f161e..cc5c89246193 100644
+--- a/crypto/lrw.c
++++ b/crypto/lrw.c
+@@ -437,7 +437,7 @@ static void __exit crypto_module_exit(void)
+ crypto_unregister_template(&crypto_tmpl);
+ }
+
+-subsys_initcall(crypto_module_init);
++module_init(crypto_module_init);
+ module_exit(crypto_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/lz4.c b/crypto/lz4.c
+index 1e35134d0a98..c160dfdbf2e0 100644
+--- a/crypto/lz4.c
++++ b/crypto/lz4.c
+@@ -164,7 +164,7 @@ static void __exit lz4_mod_fini(void)
+ crypto_unregister_scomp(&scomp);
+ }
+
+-subsys_initcall(lz4_mod_init);
++module_init(lz4_mod_init);
+ module_exit(lz4_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/lz4hc.c b/crypto/lz4hc.c
+index 4a220b628fe7..583b5e013d7a 100644
+--- a/crypto/lz4hc.c
++++ b/crypto/lz4hc.c
+@@ -165,7 +165,7 @@ static void __exit lz4hc_mod_fini(void)
+ crypto_unregister_scomp(&scomp);
+ }
+
+-subsys_initcall(lz4hc_mod_init);
++module_init(lz4hc_mod_init);
+ module_exit(lz4hc_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/lzo-rle.c b/crypto/lzo-rle.c
+index 4c82bf18440f..ea9c75b1db49 100644
+--- a/crypto/lzo-rle.c
++++ b/crypto/lzo-rle.c
+@@ -167,7 +167,7 @@ static void __exit lzorle_mod_fini(void)
+ crypto_unregister_scomp(&scomp);
+ }
+
+-subsys_initcall(lzorle_mod_init);
++module_init(lzorle_mod_init);
+ module_exit(lzorle_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/lzo.c b/crypto/lzo.c
+index 4a6ac8f247d0..218567d717d6 100644
+--- a/crypto/lzo.c
++++ b/crypto/lzo.c
+@@ -167,7 +167,7 @@ static void __exit lzo_mod_fini(void)
+ crypto_unregister_scomp(&scomp);
+ }
+
+-subsys_initcall(lzo_mod_init);
++module_init(lzo_mod_init);
+ module_exit(lzo_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/md4.c b/crypto/md4.c
+index 9a1a228a0c69..9965ec40d9f9 100644
+--- a/crypto/md4.c
++++ b/crypto/md4.c
+@@ -232,7 +232,7 @@ static void __exit md4_mod_fini(void)
+ crypto_unregister_shash(&alg);
+ }
+
+-subsys_initcall(md4_mod_init);
++module_init(md4_mod_init);
+ module_exit(md4_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/md5.c b/crypto/md5.c
+index 221c2c0932f8..94dd78144ba3 100644
+--- a/crypto/md5.c
++++ b/crypto/md5.c
+@@ -244,7 +244,7 @@ static void __exit md5_mod_fini(void)
+ crypto_unregister_shash(&alg);
+ }
+
+-subsys_initcall(md5_mod_init);
++module_init(md5_mod_init);
+ module_exit(md5_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/michael_mic.c b/crypto/michael_mic.c
+index 538ae7933795..46195e0d0f4d 100644
+--- a/crypto/michael_mic.c
++++ b/crypto/michael_mic.c
+@@ -178,7 +178,7 @@ static void __exit michael_mic_exit(void)
+ }
+
+
+-subsys_initcall(michael_mic_init);
++module_init(michael_mic_init);
+ module_exit(michael_mic_exit);
+
+ MODULE_LICENSE("GPL v2");
+diff --git a/crypto/morus1280.c b/crypto/morus1280.c
+index f8734c6576af..0747732d5b78 100644
+--- a/crypto/morus1280.c
++++ b/crypto/morus1280.c
+@@ -532,7 +532,7 @@ static void __exit crypto_morus1280_module_exit(void)
+ crypto_unregister_aead(&crypto_morus1280_alg);
+ }
+
+-subsys_initcall(crypto_morus1280_module_init);
++module_init(crypto_morus1280_module_init);
+ module_exit(crypto_morus1280_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/morus640.c b/crypto/morus640.c
+index ae5aa9482cb4..1617a1eb8be1 100644
+--- a/crypto/morus640.c
++++ b/crypto/morus640.c
+@@ -523,7 +523,7 @@ static void __exit crypto_morus640_module_exit(void)
+ crypto_unregister_aead(&crypto_morus640_alg);
+ }
+
+-subsys_initcall(crypto_morus640_module_init);
++module_init(crypto_morus640_module_init);
+ module_exit(crypto_morus640_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/nhpoly1305.c b/crypto/nhpoly1305.c
+index 9ab4e07cde4d..ec831a5594d8 100644
+--- a/crypto/nhpoly1305.c
++++ b/crypto/nhpoly1305.c
+@@ -244,7 +244,7 @@ static void __exit nhpoly1305_mod_exit(void)
+ crypto_unregister_shash(&nhpoly1305_alg);
+ }
+
+-subsys_initcall(nhpoly1305_mod_init);
++module_init(nhpoly1305_mod_init);
+ module_exit(nhpoly1305_mod_exit);
+
+ MODULE_DESCRIPTION("NHPoly1305 ε-almost-∆-universal hash function");
+diff --git a/crypto/ofb.c b/crypto/ofb.c
+index 133ff4c7f2c6..34b6e1f426f7 100644
+--- a/crypto/ofb.c
++++ b/crypto/ofb.c
+@@ -95,7 +95,7 @@ static void __exit crypto_ofb_module_exit(void)
+ crypto_unregister_template(&crypto_ofb_tmpl);
+ }
+
+-subsys_initcall(crypto_ofb_module_init);
++module_init(crypto_ofb_module_init);
+ module_exit(crypto_ofb_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/pcbc.c b/crypto/pcbc.c
+index 31b3ce948474..2fa03fc576fe 100644
+--- a/crypto/pcbc.c
++++ b/crypto/pcbc.c
+@@ -191,7 +191,7 @@ static void __exit crypto_pcbc_module_exit(void)
+ crypto_unregister_template(&crypto_pcbc_tmpl);
+ }
+
+-subsys_initcall(crypto_pcbc_module_init);
++module_init(crypto_pcbc_module_init);
+ module_exit(crypto_pcbc_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/pcrypt.c b/crypto/pcrypt.c
+index 0e9ce329fd47..d47cfc47b1b1 100644
+--- a/crypto/pcrypt.c
++++ b/crypto/pcrypt.c
+@@ -512,7 +512,7 @@ static void __exit pcrypt_exit(void)
+ crypto_unregister_template(&pcrypt_tmpl);
+ }
+
+-subsys_initcall(pcrypt_init);
++module_init(pcrypt_init);
+ module_exit(pcrypt_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/poly1305_generic.c b/crypto/poly1305_generic.c
+index adc40298c749..2a06874204e8 100644
+--- a/crypto/poly1305_generic.c
++++ b/crypto/poly1305_generic.c
+@@ -318,7 +318,7 @@ static void __exit poly1305_mod_exit(void)
+ crypto_unregister_shash(&poly1305_alg);
+ }
+
+-subsys_initcall(poly1305_mod_init);
++module_init(poly1305_mod_init);
+ module_exit(poly1305_mod_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/rmd128.c b/crypto/rmd128.c
+index faf4252c4b85..5f4472256e27 100644
+--- a/crypto/rmd128.c
++++ b/crypto/rmd128.c
+@@ -318,7 +318,7 @@ static void __exit rmd128_mod_fini(void)
+ crypto_unregister_shash(&alg);
+ }
+
+-subsys_initcall(rmd128_mod_init);
++module_init(rmd128_mod_init);
+ module_exit(rmd128_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/rmd160.c b/crypto/rmd160.c
+index b33309916d4f..737645344d1c 100644
+--- a/crypto/rmd160.c
++++ b/crypto/rmd160.c
+@@ -362,7 +362,7 @@ static void __exit rmd160_mod_fini(void)
+ crypto_unregister_shash(&alg);
+ }
+
+-subsys_initcall(rmd160_mod_init);
++module_init(rmd160_mod_init);
+ module_exit(rmd160_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/rmd256.c b/crypto/rmd256.c
+index 2a643250c9a5..0e9d30676a01 100644
+--- a/crypto/rmd256.c
++++ b/crypto/rmd256.c
+@@ -337,7 +337,7 @@ static void __exit rmd256_mod_fini(void)
+ crypto_unregister_shash(&alg);
+ }
+
+-subsys_initcall(rmd256_mod_init);
++module_init(rmd256_mod_init);
+ module_exit(rmd256_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/rmd320.c b/crypto/rmd320.c
+index 2f062574fc8c..3ae1df5bb48c 100644
+--- a/crypto/rmd320.c
++++ b/crypto/rmd320.c
+@@ -386,7 +386,7 @@ static void __exit rmd320_mod_fini(void)
+ crypto_unregister_shash(&alg);
+ }
+
+-subsys_initcall(rmd320_mod_init);
++module_init(rmd320_mod_init);
+ module_exit(rmd320_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/rsa.c b/crypto/rsa.c
+index 4cdbec95d077..07ab51798537 100644
+--- a/crypto/rsa.c
++++ b/crypto/rsa.c
+@@ -278,7 +278,7 @@ static void rsa_exit(void)
+ crypto_unregister_akcipher(&rsa);
+ }
+
+-subsys_initcall(rsa_init);
++module_init(rsa_init);
+ module_exit(rsa_exit);
+ MODULE_ALIAS_CRYPTO("rsa");
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/salsa20_generic.c b/crypto/salsa20_generic.c
+index c81a44404086..faed244be316 100644
+--- a/crypto/salsa20_generic.c
++++ b/crypto/salsa20_generic.c
+@@ -203,7 +203,7 @@ static void __exit salsa20_generic_mod_fini(void)
+ crypto_unregister_skcipher(&alg);
+ }
+
+-subsys_initcall(salsa20_generic_mod_init);
++module_init(salsa20_generic_mod_init);
+ module_exit(salsa20_generic_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/seed.c b/crypto/seed.c
+index a75ac50fa4fd..c6ba8438be43 100644
+--- a/crypto/seed.c
++++ b/crypto/seed.c
+@@ -470,7 +470,7 @@ static void __exit seed_fini(void)
+ crypto_unregister_alg(&seed_alg);
+ }
+
+-subsys_initcall(seed_init);
++module_init(seed_init);
+ module_exit(seed_fini);
+
+ MODULE_DESCRIPTION("SEED Cipher Algorithm");
+diff --git a/crypto/seqiv.c b/crypto/seqiv.c
+index 3f2fad615d26..ed1b0e9f2436 100644
+--- a/crypto/seqiv.c
++++ b/crypto/seqiv.c
+@@ -211,7 +211,7 @@ static void __exit seqiv_module_exit(void)
+ crypto_unregister_template(&seqiv_tmpl);
+ }
+
+-subsys_initcall(seqiv_module_init);
++module_init(seqiv_module_init);
+ module_exit(seqiv_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/serpent_generic.c b/crypto/serpent_generic.c
+index ec4ec89ad108..7c3382facc82 100644
+--- a/crypto/serpent_generic.c
++++ b/crypto/serpent_generic.c
+@@ -664,7 +664,7 @@ static void __exit serpent_mod_fini(void)
+ crypto_unregister_algs(srp_algs, ARRAY_SIZE(srp_algs));
+ }
+
+-subsys_initcall(serpent_mod_init);
++module_init(serpent_mod_init);
+ module_exit(serpent_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/sha1_generic.c b/crypto/sha1_generic.c
+index 1b806d4584b2..2af64ef81f40 100644
+--- a/crypto/sha1_generic.c
++++ b/crypto/sha1_generic.c
+@@ -92,7 +92,7 @@ static void __exit sha1_generic_mod_fini(void)
+ crypto_unregister_shash(&alg);
+ }
+
+-subsys_initcall(sha1_generic_mod_init);
++module_init(sha1_generic_mod_init);
+ module_exit(sha1_generic_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/sha256_generic.c b/crypto/sha256_generic.c
+index 5844e9a469e8..1e5ba6649e8d 100644
+--- a/crypto/sha256_generic.c
++++ b/crypto/sha256_generic.c
+@@ -301,7 +301,7 @@ static void __exit sha256_generic_mod_fini(void)
+ crypto_unregister_shashes(sha256_algs, ARRAY_SIZE(sha256_algs));
+ }
+
+-subsys_initcall(sha256_generic_mod_init);
++module_init(sha256_generic_mod_init);
+ module_exit(sha256_generic_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/sha3_generic.c b/crypto/sha3_generic.c
+index 60fd2be609d8..7ed98367d4fb 100644
+--- a/crypto/sha3_generic.c
++++ b/crypto/sha3_generic.c
+@@ -294,7 +294,7 @@ static void __exit sha3_generic_mod_fini(void)
+ crypto_unregister_shashes(algs, ARRAY_SIZE(algs));
+ }
+
+-subsys_initcall(sha3_generic_mod_init);
++module_init(sha3_generic_mod_init);
+ module_exit(sha3_generic_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/sha512_generic.c b/crypto/sha512_generic.c
+index e34d09dd9971..ebc262d76bfb 100644
+--- a/crypto/sha512_generic.c
++++ b/crypto/sha512_generic.c
+@@ -218,7 +218,7 @@ static void __exit sha512_generic_mod_fini(void)
+ crypto_unregister_shashes(sha512_algs, ARRAY_SIZE(sha512_algs));
+ }
+
+-subsys_initcall(sha512_generic_mod_init);
++module_init(sha512_generic_mod_init);
+ module_exit(sha512_generic_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/sm3_generic.c b/crypto/sm3_generic.c
+index e227bcada2a2..c0cf87ae7ef6 100644
+--- a/crypto/sm3_generic.c
++++ b/crypto/sm3_generic.c
+@@ -199,7 +199,7 @@ static void __exit sm3_generic_mod_fini(void)
+ crypto_unregister_shash(&sm3_alg);
+ }
+
+-subsys_initcall(sm3_generic_mod_init);
++module_init(sm3_generic_mod_init);
+ module_exit(sm3_generic_mod_fini);
+
+ MODULE_LICENSE("GPL v2");
+diff --git a/crypto/sm4_generic.c b/crypto/sm4_generic.c
+index 71ffb343709a..c18eebfd5edd 100644
+--- a/crypto/sm4_generic.c
++++ b/crypto/sm4_generic.c
+@@ -237,7 +237,7 @@ static void __exit sm4_fini(void)
+ crypto_unregister_alg(&sm4_alg);
+ }
+
+-subsys_initcall(sm4_init);
++module_init(sm4_init);
+ module_exit(sm4_fini);
+
+ MODULE_DESCRIPTION("SM4 Cipher Algorithm");
+diff --git a/crypto/streebog_generic.c b/crypto/streebog_generic.c
+index 63663c3bab7e..b82fc3d79aa1 100644
+--- a/crypto/streebog_generic.c
++++ b/crypto/streebog_generic.c
+@@ -1128,7 +1128,7 @@ static void __exit streebog_mod_fini(void)
+ crypto_unregister_shashes(algs, ARRAY_SIZE(algs));
+ }
+
+-subsys_initcall(streebog_mod_init);
++module_init(streebog_mod_init);
+ module_exit(streebog_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c
+index 798253f05203..1ea2d5007ff5 100644
+--- a/crypto/tcrypt.c
++++ b/crypto/tcrypt.c
+@@ -3053,7 +3053,7 @@ static int __init tcrypt_mod_init(void)
+ */
+ static void __exit tcrypt_mod_fini(void) { }
+
+-subsys_initcall(tcrypt_mod_init);
++module_init(tcrypt_mod_init);
+ module_exit(tcrypt_mod_fini);
+
+ module_param(alg, charp, 0);
+diff --git a/crypto/tea.c b/crypto/tea.c
+index 786b589e1399..b70b441c7d1e 100644
+--- a/crypto/tea.c
++++ b/crypto/tea.c
+@@ -274,7 +274,7 @@ MODULE_ALIAS_CRYPTO("tea");
+ MODULE_ALIAS_CRYPTO("xtea");
+ MODULE_ALIAS_CRYPTO("xeta");
+
+-subsys_initcall(tea_mod_init);
++module_init(tea_mod_init);
+ module_exit(tea_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/tgr192.c b/crypto/tgr192.c
+index 40020f8adc46..f8e1d9f9938f 100644
+--- a/crypto/tgr192.c
++++ b/crypto/tgr192.c
+@@ -677,7 +677,7 @@ MODULE_ALIAS_CRYPTO("tgr192");
+ MODULE_ALIAS_CRYPTO("tgr160");
+ MODULE_ALIAS_CRYPTO("tgr128");
+
+-subsys_initcall(tgr192_mod_init);
++module_init(tgr192_mod_init);
+ module_exit(tgr192_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/twofish_generic.c b/crypto/twofish_generic.c
+index 4f7c033224f9..e5bfc21c36cf 100644
+--- a/crypto/twofish_generic.c
++++ b/crypto/twofish_generic.c
+@@ -192,7 +192,7 @@ static void __exit twofish_mod_fini(void)
+ crypto_unregister_alg(&alg);
+ }
+
+-subsys_initcall(twofish_mod_init);
++module_init(twofish_mod_init);
+ module_exit(twofish_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/vmac.c b/crypto/vmac.c
+index f50a85060b39..5f436dfdfc61 100644
+--- a/crypto/vmac.c
++++ b/crypto/vmac.c
+@@ -690,7 +690,7 @@ static void __exit vmac_module_exit(void)
+ crypto_unregister_template(&vmac64_tmpl);
+ }
+
+-subsys_initcall(vmac_module_init);
++module_init(vmac_module_init);
+ module_exit(vmac_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/wp512.c b/crypto/wp512.c
+index 1b8e502d999f..149e577fb772 100644
+--- a/crypto/wp512.c
++++ b/crypto/wp512.c
+@@ -1168,7 +1168,7 @@ MODULE_ALIAS_CRYPTO("wp512");
+ MODULE_ALIAS_CRYPTO("wp384");
+ MODULE_ALIAS_CRYPTO("wp256");
+
+-subsys_initcall(wp512_mod_init);
++module_init(wp512_mod_init);
+ module_exit(wp512_mod_fini);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/xcbc.c b/crypto/xcbc.c
+index 0bb26e8f6f5a..6d7dc0fa6784 100644
+--- a/crypto/xcbc.c
++++ b/crypto/xcbc.c
+@@ -270,7 +270,7 @@ static void __exit crypto_xcbc_module_exit(void)
+ crypto_unregister_template(&crypto_xcbc_tmpl);
+ }
+
+-subsys_initcall(crypto_xcbc_module_init);
++module_init(crypto_xcbc_module_init);
+ module_exit(crypto_xcbc_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/xts.c b/crypto/xts.c
+index 33cf726df4ac..2f948328cabb 100644
+--- a/crypto/xts.c
++++ b/crypto/xts.c
+@@ -363,7 +363,7 @@ static void __exit crypto_module_exit(void)
+ crypto_unregister_template(&crypto_tmpl);
+ }
+
+-subsys_initcall(crypto_module_init);
++module_init(crypto_module_init);
+ module_exit(crypto_module_exit);
+
+ MODULE_LICENSE("GPL");
+diff --git a/crypto/zstd.c b/crypto/zstd.c
+index 2c04055e407f..9a76b3ed8b8b 100644
+--- a/crypto/zstd.c
++++ b/crypto/zstd.c
+@@ -257,7 +257,7 @@ static void __exit zstd_mod_fini(void)
+ crypto_unregister_scomp(&scomp);
+ }
+
+-subsys_initcall(zstd_mod_init);
++module_init(zstd_mod_init);
+ module_exit(zstd_mod_fini);
+
+ MODULE_LICENSE("GPL");
+--
+2.21.0
+
diff --git a/kernel.spec b/kernel.spec
index ddca5a862..f22bbd5c8 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -561,7 +561,6 @@ Patch340: arm64-tegra-jetson-tx1-fixes.patch
# 400 - IBM (ppc/s390x) patches
# 500 - Temp fixes/CVEs etc
-
# rhbz 1431375
Patch501: input-rmi4-remove-the-need-for-artifical-IRQ.patch
@@ -580,6 +579,8 @@ Patch524: net-vhost_net-fix-possible-infinite-loop.patch
Patch526: s390-mark-__cpacf_check_opcode-and-cpacf_query_func-as-__always_inline.patch
Patch527: v2-powerpc-mm-mark-more-tlb-functions-as-__always_inline.patch
+Patch530: 0001-Revert-crypto-run-initcalls-for-generic-implementati.patch
+
# END OF PATCH DEFINITIONS
%endif