Now that kernel mode NEON is guaranteed to be available both in process
and in softirq context, we no longer have a need for the SIMD helper or
for non-SIMD fallbacks, given that the skcipher API is not supported in
any other context anyway. So drop this code.

Signed-off-by: Ard Biesheuvel <a...@kernel.org>
---
 arch/arm/crypto/aes-ce-glue.c | 84 +-------------------
 1 file changed, 3 insertions(+), 81 deletions(-)

diff --git a/arch/arm/crypto/aes-ce-glue.c b/arch/arm/crypto/aes-ce-glue.c
index b668c97663ec..bcb2b6695241 100644
--- a/arch/arm/crypto/aes-ce-glue.c
+++ b/arch/arm/crypto/aes-ce-glue.c
@@ -7,11 +7,9 @@
 
 #include <asm/hwcap.h>
 #include <asm/neon.h>
-#include <asm/simd.h>
 #include <asm/unaligned.h>
 #include <crypto/aes.h>
 #include <crypto/ctr.h>
-#include <crypto/internal/simd.h>
 #include <crypto/internal/skcipher.h>
 #include <crypto/scatterwalk.h>
 #include <linux/cpufeature.h>
@@ -418,29 +416,6 @@ static int ctr_encrypt(struct skcipher_request *req)
        return err;
 }
 
-static void ctr_encrypt_one(struct crypto_skcipher *tfm, const u8 *src, u8 
*dst)
-{
-       struct crypto_aes_ctx *ctx = crypto_skcipher_ctx(tfm);
-       unsigned long flags;
-
-       /*
-        * Temporarily disable interrupts to avoid races where
-        * cachelines are evicted when the CPU is interrupted
-        * to do something else.
-        */
-       local_irq_save(flags);
-       aes_encrypt(ctx, dst, src);
-       local_irq_restore(flags);
-}
-
-static int ctr_encrypt_sync(struct skcipher_request *req)
-{
-       if (!crypto_simd_usable())
-               return crypto_ctr_encrypt_walk(req, ctr_encrypt_one);
-
-       return ctr_encrypt(req);
-}
-
 static int xts_encrypt(struct skcipher_request *req)
 {
        struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
@@ -647,25 +622,9 @@ static struct skcipher_alg aes_algs[] = { {
        .encrypt                = ctr_encrypt,
        .decrypt                = ctr_encrypt,
 }, {
-       .base.cra_name          = "ctr(aes)",
-       .base.cra_driver_name   = "ctr-aes-ce-sync",
-       .base.cra_priority      = 300 - 1,
-       .base.cra_blocksize     = 1,
-       .base.cra_ctxsize       = sizeof(struct crypto_aes_ctx),
-       .base.cra_module        = THIS_MODULE,
-
-       .min_keysize            = AES_MIN_KEY_SIZE,
-       .max_keysize            = AES_MAX_KEY_SIZE,
-       .ivsize                 = AES_BLOCK_SIZE,
-       .chunksize              = AES_BLOCK_SIZE,
-       .setkey                 = ce_aes_setkey,
-       .encrypt                = ctr_encrypt_sync,
-       .decrypt                = ctr_encrypt_sync,
-}, {
-       .base.cra_name          = "__xts(aes)",
-       .base.cra_driver_name   = "__xts-aes-ce",
+       .base.cra_name          = "xts(aes)",
+       .base.cra_driver_name   = "xts-aes-ce",
        .base.cra_priority      = 300,
-       .base.cra_flags         = CRYPTO_ALG_INTERNAL,
        .base.cra_blocksize     = AES_BLOCK_SIZE,
        .base.cra_ctxsize       = sizeof(struct crypto_aes_xts_ctx),
        .base.cra_module        = THIS_MODULE,
@@ -679,51 +638,14 @@ static struct skcipher_alg aes_algs[] = { {
        .decrypt                = xts_decrypt,
 } };
 
-static struct simd_skcipher_alg *aes_simd_algs[ARRAY_SIZE(aes_algs)];
-
 static void aes_exit(void)
 {
-       int i;
-
-       for (i = 0; i < ARRAY_SIZE(aes_simd_algs) && aes_simd_algs[i]; i++)
-               simd_skcipher_free(aes_simd_algs[i]);
-
        crypto_unregister_skciphers(aes_algs, ARRAY_SIZE(aes_algs));
 }
 
 static int __init aes_init(void)
 {
-       struct simd_skcipher_alg *simd;
-       const char *basename;
-       const char *algname;
-       const char *drvname;
-       int err;
-       int i;
-
-       err = crypto_register_skciphers(aes_algs, ARRAY_SIZE(aes_algs));
-       if (err)
-               return err;
-
-       for (i = 0; i < ARRAY_SIZE(aes_algs); i++) {
-               if (!(aes_algs[i].base.cra_flags & CRYPTO_ALG_INTERNAL))
-                       continue;
-
-               algname = aes_algs[i].base.cra_name + 2;
-               drvname = aes_algs[i].base.cra_driver_name + 2;
-               basename = aes_algs[i].base.cra_driver_name;
-               simd = simd_skcipher_create_compat(algname, drvname, basename);
-               err = PTR_ERR(simd);
-               if (IS_ERR(simd))
-                       goto unregister_simds;
-
-               aes_simd_algs[i] = simd;
-       }
-
-       return 0;
-
-unregister_simds:
-       aes_exit();
-       return err;
+       return crypto_register_skciphers(aes_algs, ARRAY_SIZE(aes_algs));
 }
 
 module_cpu_feature_match(AES, aes_init);
-- 
2.17.1

Reply via email to