summaryrefslogtreecommitdiffstats
path: root/drivers/staging/skein/skein_generic.c
diff options
context:
space:
mode:
authorEric Rost <eric.rost@mybabylon.net>2014-10-24 17:33:41 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-10-29 16:39:58 +0800
commit075c267566a49680f77119d04066339ee354678b (patch)
treedcf4602db778e554e38a024bc008e953ea9ccfe7 /drivers/staging/skein/skein_generic.c
parentf96d8ced8ec6e37b8c128bd9c7c65919cc273711 (diff)
downloadop-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.c19
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");
OpenPOWER on IntegriCloud