1
0
Fork 0

crypto: vmx - Convert to CPU feature based module autoloading

This patch utilises the GENERIC_CPU_AUTOPROBE infrastructure
to automatically load the vmx_crypto module if the CPU supports
it.

Signed-off-by: Alastair D'Silva <alastair@d-silva.org>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
steinar/wifi_calib_4_9_kernel
Alastair D'Silva 2016-07-19 14:03:53 +10:00 committed by Michael Ellerman
parent 4a1202765d
commit ccf5c442a1
2 changed files with 3 additions and 5 deletions

View File

@ -1,7 +1,7 @@
config CRYPTO_DEV_VMX_ENCRYPT config CRYPTO_DEV_VMX_ENCRYPT
tristate "Encryption acceleration support on P8 CPU" tristate "Encryption acceleration support on P8 CPU"
depends on CRYPTO_DEV_VMX depends on CRYPTO_DEV_VMX
default y default m
help help
Support for VMX cryptographic acceleration instructions on Power8 CPU. Support for VMX cryptographic acceleration instructions on Power8 CPU.
This module supports acceleration for AES and GHASH in hardware. If you This module supports acceleration for AES and GHASH in hardware. If you

View File

@ -23,6 +23,7 @@
#include <linux/moduleparam.h> #include <linux/moduleparam.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/cpufeature.h>
#include <linux/crypto.h> #include <linux/crypto.h>
#include <asm/cputable.h> #include <asm/cputable.h>
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>
@ -43,9 +44,6 @@ int __init p8_init(void)
int ret = 0; int ret = 0;
struct crypto_alg **alg_it; struct crypto_alg **alg_it;
if (!(cur_cpu_spec->cpu_user_features2 & PPC_FEATURE2_VEC_CRYPTO))
return -ENODEV;
for (alg_it = algs; *alg_it; alg_it++) { for (alg_it = algs; *alg_it; alg_it++) {
ret = crypto_register_alg(*alg_it); ret = crypto_register_alg(*alg_it);
printk(KERN_INFO "crypto_register_alg '%s' = %d\n", printk(KERN_INFO "crypto_register_alg '%s' = %d\n",
@ -78,7 +76,7 @@ void __exit p8_exit(void)
crypto_unregister_shash(&p8_ghash_alg); crypto_unregister_shash(&p8_ghash_alg);
} }
module_init(p8_init); module_cpu_feature_match(PPC_MODULE_FEATURE_VEC_CRYPTO, p8_init);
module_exit(p8_exit); module_exit(p8_exit);
MODULE_AUTHOR("Marcelo Cerri<mhcerri@br.ibm.com>"); MODULE_AUTHOR("Marcelo Cerri<mhcerri@br.ibm.com>");