Commit d05377c1 authored by Hendrik Brueckner's avatar Hendrik Brueckner Committed by Martin Schwidefsky

s390/crypto: add cpu feature modaliases for crypto modules

Use the module_cpu_feature_match() module init function to add an
module alias based on required CPU features.   The modules are
automatically loaded on hardware that supports the required CPU features.
Signed-off-by: default avatarHendrik Brueckner <brueckner@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 8f00b3e2
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <crypto/algapi.h> #include <crypto/algapi.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/cpufeature.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include "crypt_s390.h" #include "crypt_s390.h"
...@@ -976,7 +977,7 @@ static void __exit aes_s390_fini(void) ...@@ -976,7 +977,7 @@ static void __exit aes_s390_fini(void)
crypto_unregister_alg(&aes_alg); crypto_unregister_alg(&aes_alg);
} }
module_init(aes_s390_init); module_cpu_feature_match(MSA, aes_s390_init);
module_exit(aes_s390_fini); module_exit(aes_s390_fini);
MODULE_ALIAS_CRYPTO("aes-all"); MODULE_ALIAS_CRYPTO("aes-all");
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/cpufeature.h>
#include <linux/crypto.h> #include <linux/crypto.h>
#include <crypto/algapi.h> #include <crypto/algapi.h>
#include <crypto/des.h> #include <crypto/des.h>
...@@ -616,7 +617,7 @@ static void __exit des_s390_exit(void) ...@@ -616,7 +617,7 @@ static void __exit des_s390_exit(void)
crypto_unregister_alg(&des_alg); crypto_unregister_alg(&des_alg);
} }
module_init(des_s390_init); module_cpu_feature_match(MSA, des_s390_init);
module_exit(des_s390_exit); module_exit(des_s390_exit);
MODULE_ALIAS_CRYPTO("des"); MODULE_ALIAS_CRYPTO("des");
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/cpufeature.h>
#include "crypt_s390.h" #include "crypt_s390.h"
...@@ -158,7 +159,7 @@ static void __exit ghash_mod_exit(void) ...@@ -158,7 +159,7 @@ static void __exit ghash_mod_exit(void)
crypto_unregister_shash(&ghash_alg); crypto_unregister_shash(&ghash_alg);
} }
module_init(ghash_mod_init); module_cpu_feature_match(MSA, ghash_mod_init);
module_exit(ghash_mod_exit); module_exit(ghash_mod_exit);
MODULE_ALIAS_CRYPTO("ghash"); MODULE_ALIAS_CRYPTO("ghash");
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/moduleparam.h> #include <linux/moduleparam.h>
#include <linux/mutex.h> #include <linux/mutex.h>
#include <linux/cpufeature.h>
#include <linux/random.h> #include <linux/random.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <asm/debug.h> #include <asm/debug.h>
...@@ -914,6 +915,5 @@ static void __exit prng_exit(void) ...@@ -914,6 +915,5 @@ static void __exit prng_exit(void)
} }
} }
module_cpu_feature_match(MSA, prng_init);
module_init(prng_init);
module_exit(prng_exit); module_exit(prng_exit);
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/cpufeature.h>
#include <crypto/sha.h> #include <crypto/sha.h>
#include "crypt_s390.h" #include "crypt_s390.h"
...@@ -100,7 +101,7 @@ static void __exit sha1_s390_fini(void) ...@@ -100,7 +101,7 @@ static void __exit sha1_s390_fini(void)
crypto_unregister_shash(&alg); crypto_unregister_shash(&alg);
} }
module_init(sha1_s390_init); module_cpu_feature_match(MSA, sha1_s390_init);
module_exit(sha1_s390_fini); module_exit(sha1_s390_fini);
MODULE_ALIAS_CRYPTO("sha1"); MODULE_ALIAS_CRYPTO("sha1");
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/cpufeature.h>
#include <crypto/sha.h> #include <crypto/sha.h>
#include "crypt_s390.h" #include "crypt_s390.h"
...@@ -140,7 +141,7 @@ static void __exit sha256_s390_fini(void) ...@@ -140,7 +141,7 @@ static void __exit sha256_s390_fini(void)
crypto_unregister_shash(&sha256_alg); crypto_unregister_shash(&sha256_alg);
} }
module_init(sha256_s390_init); module_cpu_feature_match(MSA, sha256_s390_init);
module_exit(sha256_s390_fini); module_exit(sha256_s390_fini);
MODULE_ALIAS_CRYPTO("sha256"); MODULE_ALIAS_CRYPTO("sha256");
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/cpufeature.h>
#include "sha.h" #include "sha.h"
#include "crypt_s390.h" #include "crypt_s390.h"
...@@ -148,7 +149,7 @@ static void __exit fini(void) ...@@ -148,7 +149,7 @@ static void __exit fini(void)
crypto_unregister_shash(&sha384_alg); crypto_unregister_shash(&sha384_alg);
} }
module_init(init); module_cpu_feature_match(MSA, init);
module_exit(fini); module_exit(fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment