diff options
author | Eric Rost <eric.rost@mybabylon.net> | 2014-10-24 17:33:41 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-10-29 16:39:58 +0800 |
commit | 075c267566a49680f77119d04066339ee354678b (patch) | |
tree | dcf4602db778e554e38a024bc008e953ea9ccfe7 /drivers/staging/skein/skein_generic.c | |
parent | f96d8ced8ec6e37b8c128bd9c7c65919cc273711 (diff) | |
download | op-kernel-dev-075c267566a49680f77119d04066339ee354678b.zip op-kernel-dev-075c267566a49680f77119d04066339ee354678b.tar.gz |
staging: skein: Adds Loadable Module Support
Adds loadable module support to the Skein Hashing Algorithm driver.
Signed-off-by: Eric Rost <eric.rost@mybabylon.net>
Reviewed-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/skein/skein_generic.c')
-rw-r--r-- | drivers/staging/skein/skein_generic.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/drivers/staging/skein/skein_generic.c b/drivers/staging/skein/skein_generic.c index f2d6dfb..60d16b6 100644 --- a/drivers/staging/skein/skein_generic.c +++ b/drivers/staging/skein/skein_generic.c @@ -16,6 +16,7 @@ */ #include <linux/types.h> #include <linux/init.h> +#include <linux/module.h> #include <crypto/internal/hash.h> #include "skein_base.h" @@ -139,6 +140,7 @@ static struct shash_alg alg256 = { .cra_driver_name = "skein", .cra_flags = CRYPTO_ALG_TYPE_SHASH, .cra_blocksize = SKEIN_256_BLOCK_BYTES, + .cra_module = THIS_MODULE, } }; @@ -156,6 +158,7 @@ static struct shash_alg alg512 = { .cra_driver_name = "skein", .cra_flags = CRYPTO_ALG_TYPE_SHASH, .cra_blocksize = SKEIN_512_BLOCK_BYTES, + .cra_module = THIS_MODULE, } }; @@ -173,6 +176,7 @@ static struct shash_alg alg1024 = { .cra_driver_name = "skein", .cra_flags = CRYPTO_ALG_TYPE_SHASH, .cra_blocksize = SKEIN_1024_BLOCK_BYTES, + .cra_module = THIS_MODULE, } }; @@ -196,4 +200,17 @@ out: return -1; } -device_initcall(skein_generic_init); +static void __exit skein_generic_fini(void) +{ + crypto_unregister_shash(&alg256); + crypto_unregister_shash(&alg512); + crypto_unregister_shash(&alg1024); +} + +module_init(skein_generic_init); +module_exit(skein_generic_fini); + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Skein Hash Algorithm"); + +MODULE_ALIAS("skein"); |