depends on X86 && 64BIT
        select CRYPTO_SKCIPHER
        select CRYPTO_SERPENT
-       select CRYPTO_SIMD
        imply CRYPTO_CTR
        help
          Length-preserving ciphers: Serpent cipher algorithm
        depends on X86 && !64BIT
        select CRYPTO_SKCIPHER
        select CRYPTO_SERPENT
-       select CRYPTO_SIMD
        imply CRYPTO_CTR
        help
          Length-preserving ciphers: Serpent cipher algorithm
        depends on X86 && 64BIT
        select CRYPTO_SKCIPHER
        select CRYPTO_SERPENT
-       select CRYPTO_SIMD
        imply CRYPTO_XTS
        imply CRYPTO_CTR
        help
 
 #include <linux/crypto.h>
 #include <linux/err.h>
 #include <crypto/algapi.h>
-#include <crypto/internal/simd.h>
 #include <crypto/serpent.h>
 
 #include "serpent-avx.h"
 
 static struct skcipher_alg serpent_algs[] = {
        {
-               .base.cra_name          = "__ecb(serpent)",
-               .base.cra_driver_name   = "__ecb-serpent-avx2",
+               .base.cra_name          = "ecb(serpent)",
+               .base.cra_driver_name   = "ecb-serpent-avx2",
                .base.cra_priority      = 600,
-               .base.cra_flags         = CRYPTO_ALG_INTERNAL,
                .base.cra_blocksize     = SERPENT_BLOCK_SIZE,
                .base.cra_ctxsize       = sizeof(struct serpent_ctx),
                .base.cra_module        = THIS_MODULE,
                .encrypt                = ecb_encrypt,
                .decrypt                = ecb_decrypt,
        }, {
-               .base.cra_name          = "__cbc(serpent)",
-               .base.cra_driver_name   = "__cbc-serpent-avx2",
+               .base.cra_name          = "cbc(serpent)",
+               .base.cra_driver_name   = "cbc-serpent-avx2",
                .base.cra_priority      = 600,
-               .base.cra_flags         = CRYPTO_ALG_INTERNAL,
                .base.cra_blocksize     = SERPENT_BLOCK_SIZE,
                .base.cra_ctxsize       = sizeof(struct serpent_ctx),
                .base.cra_module        = THIS_MODULE,
        },
 };
 
-static struct simd_skcipher_alg *serpent_simd_algs[ARRAY_SIZE(serpent_algs)];
-
 static int __init serpent_avx2_init(void)
 {
        const char *feature_name;
                return -ENODEV;
        }
 
-       return simd_register_skciphers_compat(serpent_algs,
-                                             ARRAY_SIZE(serpent_algs),
-                                             serpent_simd_algs);
+       return crypto_register_skciphers(serpent_algs,
+                                        ARRAY_SIZE(serpent_algs));
 }
 
 static void __exit serpent_avx2_fini(void)
 {
-       simd_unregister_skciphers(serpent_algs, ARRAY_SIZE(serpent_algs),
-                                 serpent_simd_algs);
+       crypto_unregister_skciphers(serpent_algs, ARRAY_SIZE(serpent_algs));
 }
 
 module_init(serpent_avx2_init);
 
 #include <linux/crypto.h>
 #include <linux/err.h>
 #include <crypto/algapi.h>
-#include <crypto/internal/simd.h>
 #include <crypto/serpent.h>
 
 #include "serpent-avx.h"
 
 static struct skcipher_alg serpent_algs[] = {
        {
-               .base.cra_name          = "__ecb(serpent)",
-               .base.cra_driver_name   = "__ecb-serpent-avx",
+               .base.cra_name          = "ecb(serpent)",
+               .base.cra_driver_name   = "ecb-serpent-avx",
                .base.cra_priority      = 500,
-               .base.cra_flags         = CRYPTO_ALG_INTERNAL,
                .base.cra_blocksize     = SERPENT_BLOCK_SIZE,
                .base.cra_ctxsize       = sizeof(struct serpent_ctx),
                .base.cra_module        = THIS_MODULE,
                .encrypt                = ecb_encrypt,
                .decrypt                = ecb_decrypt,
        }, {
-               .base.cra_name          = "__cbc(serpent)",
-               .base.cra_driver_name   = "__cbc-serpent-avx",
+               .base.cra_name          = "cbc(serpent)",
+               .base.cra_driver_name   = "cbc-serpent-avx",
                .base.cra_priority      = 500,
-               .base.cra_flags         = CRYPTO_ALG_INTERNAL,
                .base.cra_blocksize     = SERPENT_BLOCK_SIZE,
                .base.cra_ctxsize       = sizeof(struct serpent_ctx),
                .base.cra_module        = THIS_MODULE,
        },
 };
 
-static struct simd_skcipher_alg *serpent_simd_algs[ARRAY_SIZE(serpent_algs)];
-
 static int __init serpent_init(void)
 {
        const char *feature_name;
                return -ENODEV;
        }
 
-       return simd_register_skciphers_compat(serpent_algs,
-                                             ARRAY_SIZE(serpent_algs),
-                                             serpent_simd_algs);
+       return crypto_register_skciphers(serpent_algs,
+                                        ARRAY_SIZE(serpent_algs));
 }
 
 static void __exit serpent_exit(void)
 {
-       simd_unregister_skciphers(serpent_algs, ARRAY_SIZE(serpent_algs),
-                                 serpent_simd_algs);
+       crypto_unregister_skciphers(serpent_algs, ARRAY_SIZE(serpent_algs));
 }
 
 module_init(serpent_init);
 
 #include <linux/err.h>
 #include <crypto/algapi.h>
 #include <crypto/b128ops.h>
-#include <crypto/internal/simd.h>
 #include <crypto/serpent.h>
 
 #include "serpent-sse2.h"
 
 static struct skcipher_alg serpent_algs[] = {
        {
-               .base.cra_name          = "__ecb(serpent)",
-               .base.cra_driver_name   = "__ecb-serpent-sse2",
+               .base.cra_name          = "ecb(serpent)",
+               .base.cra_driver_name   = "ecb-serpent-sse2",
                .base.cra_priority      = 400,
-               .base.cra_flags         = CRYPTO_ALG_INTERNAL,
                .base.cra_blocksize     = SERPENT_BLOCK_SIZE,
                .base.cra_ctxsize       = sizeof(struct serpent_ctx),
                .base.cra_module        = THIS_MODULE,
                .encrypt                = ecb_encrypt,
                .decrypt                = ecb_decrypt,
        }, {
-               .base.cra_name          = "__cbc(serpent)",
-               .base.cra_driver_name   = "__cbc-serpent-sse2",
+               .base.cra_name          = "cbc(serpent)",
+               .base.cra_driver_name   = "cbc-serpent-sse2",
                .base.cra_priority      = 400,
-               .base.cra_flags         = CRYPTO_ALG_INTERNAL,
                .base.cra_blocksize     = SERPENT_BLOCK_SIZE,
                .base.cra_ctxsize       = sizeof(struct serpent_ctx),
                .base.cra_module        = THIS_MODULE,
        },
 };
 
-static struct simd_skcipher_alg *serpent_simd_algs[ARRAY_SIZE(serpent_algs)];
-
 static int __init serpent_sse2_init(void)
 {
        if (!boot_cpu_has(X86_FEATURE_XMM2)) {
                return -ENODEV;
        }
 
-       return simd_register_skciphers_compat(serpent_algs,
-                                             ARRAY_SIZE(serpent_algs),
-                                             serpent_simd_algs);
+       return crypto_register_skciphers(serpent_algs,
+                                        ARRAY_SIZE(serpent_algs));
 }
 
 static void __exit serpent_sse2_exit(void)
 {
-       simd_unregister_skciphers(serpent_algs, ARRAY_SIZE(serpent_algs),
-                                 serpent_simd_algs);
+       crypto_unregister_skciphers(serpent_algs, ARRAY_SIZE(serpent_algs));
 }
 
 module_init(serpent_sse2_init);