crypto: crypto_null - use crypto_[un]register_algs
authorJussi Kivilinna <jussi.kivilinna@mbnet.fi>
Wed, 11 Jul 2012 11:20:00 +0000 (14:20 +0300)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 1 Aug 2012 09:47:24 +0000 (17:47 +0800)
Combine all crypto_alg to be registered and use new crypto_[un]register_algs
functions. This simplifies init/exit code.

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/crypto_null.c

index 07a8a96d46fc1f2ef373ebb485ebf37287636726..fee7265cd35df5aa3d752e3294cb0f50fada64d2 100644 (file)
@@ -94,18 +94,6 @@ static int skcipher_null_crypt(struct blkcipher_desc *desc,
        return err;
 }
 
-static struct crypto_alg compress_null = {
-       .cra_name               =       "compress_null",
-       .cra_flags              =       CRYPTO_ALG_TYPE_COMPRESS,
-       .cra_blocksize          =       NULL_BLOCK_SIZE,
-       .cra_ctxsize            =       0,
-       .cra_module             =       THIS_MODULE,
-       .cra_list               =       LIST_HEAD_INIT(compress_null.cra_list),
-       .cra_u                  =       { .compress = {
-       .coa_compress           =       null_compress,
-       .coa_decompress         =       null_compress } }
-};
-
 static struct shash_alg digest_null = {
        .digestsize             =       NULL_DIGEST_SIZE,
        .setkey                 =       null_hash_setkey,
@@ -122,22 +110,19 @@ static struct shash_alg digest_null = {
        }
 };
 
-static struct crypto_alg cipher_null = {
+static struct crypto_alg null_algs[3] = { {
        .cra_name               =       "cipher_null",
        .cra_flags              =       CRYPTO_ALG_TYPE_CIPHER,
        .cra_blocksize          =       NULL_BLOCK_SIZE,
        .cra_ctxsize            =       0,
        .cra_module             =       THIS_MODULE,
-       .cra_list               =       LIST_HEAD_INIT(cipher_null.cra_list),
        .cra_u                  =       { .cipher = {
        .cia_min_keysize        =       NULL_KEY_SIZE,
        .cia_max_keysize        =       NULL_KEY_SIZE,
        .cia_setkey             =       null_setkey,
        .cia_encrypt            =       null_crypt,
        .cia_decrypt            =       null_crypt } }
-};
-
-static struct crypto_alg skcipher_null = {
+}, {
        .cra_name               =       "ecb(cipher_null)",
        .cra_driver_name        =       "ecb-cipher_null",
        .cra_priority           =       100,
@@ -146,7 +131,6 @@ static struct crypto_alg skcipher_null = {
        .cra_type               =       &crypto_blkcipher_type,
        .cra_ctxsize            =       0,
        .cra_module             =       THIS_MODULE,
-       .cra_list               =       LIST_HEAD_INIT(skcipher_null.cra_list),
        .cra_u                  =       { .blkcipher = {
        .min_keysize            =       NULL_KEY_SIZE,
        .max_keysize            =       NULL_KEY_SIZE,
@@ -154,7 +138,16 @@ static struct crypto_alg skcipher_null = {
        .setkey                 =       null_setkey,
        .encrypt                =       skcipher_null_crypt,
        .decrypt                =       skcipher_null_crypt } }
-};
+}, {
+       .cra_name               =       "compress_null",
+       .cra_flags              =       CRYPTO_ALG_TYPE_COMPRESS,
+       .cra_blocksize          =       NULL_BLOCK_SIZE,
+       .cra_ctxsize            =       0,
+       .cra_module             =       THIS_MODULE,
+       .cra_u                  =       { .compress = {
+       .coa_compress           =       null_compress,
+       .coa_decompress         =       null_compress } }
+} };
 
 MODULE_ALIAS("compress_null");
 MODULE_ALIAS("digest_null");
@@ -164,40 +157,26 @@ static int __init crypto_null_mod_init(void)
 {
        int ret = 0;
 
-       ret = crypto_register_alg(&cipher_null);
+       ret = crypto_register_algs(null_algs, ARRAY_SIZE(null_algs));
        if (ret < 0)
                goto out;
 
-       ret = crypto_register_alg(&skcipher_null);
-       if (ret < 0)
-               goto out_unregister_cipher;
-
        ret = crypto_register_shash(&digest_null);
        if (ret < 0)
-               goto out_unregister_skcipher;
+               goto out_unregister_algs;
 
-       ret = crypto_register_alg(&compress_null);
-       if (ret < 0)
-               goto out_unregister_digest;
+       return 0;
 
+out_unregister_algs:
+       crypto_unregister_algs(null_algs, ARRAY_SIZE(null_algs));
 out:
        return ret;
-
-out_unregister_digest:
-       crypto_unregister_shash(&digest_null);
-out_unregister_skcipher:
-       crypto_unregister_alg(&skcipher_null);
-out_unregister_cipher:
-       crypto_unregister_alg(&cipher_null);
-       goto out;
 }
 
 static void __exit crypto_null_mod_fini(void)
 {
-       crypto_unregister_alg(&compress_null);
        crypto_unregister_shash(&digest_null);
-       crypto_unregister_alg(&skcipher_null);
-       crypto_unregister_alg(&cipher_null);
+       crypto_unregister_algs(null_algs, ARRAY_SIZE(null_algs));
 }
 
 module_init(crypto_null_mod_init);