crypto: atmel - add CRYPTO_ALG_KERN_DRIVER_ONLY flag
authorZixun LI <admin@hifiphile.com>
Mon, 7 Apr 2025 10:20:49 +0000 (12:20 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 16 Apr 2025 07:16:21 +0000 (15:16 +0800)
This patch introduces the CRYPTO_ALG_KERN_DRIVER_ONLY flag to the
atmel-aes, atmel-sha, and atmel-tdes drivers. This flag is set for
hardware accelerated ciphers accessible through a kernel driver only,
which is the case of these drivers.

Signed-off-by: Zixun LI <admin@hifiphile.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/atmel-aes.c
drivers/crypto/atmel-sha.c
drivers/crypto/atmel-tdes.c

index 14bf86957d3182af5ba2e52505f0a06e36db3a8f..27c5d000b4b2b7b2dcac1ca2c744d2293398b006 100644 (file)
@@ -1743,7 +1743,8 @@ static struct skcipher_alg aes_xts_alg = {
        .base.cra_driver_name   = "atmel-xts-aes",
        .base.cra_blocksize     = AES_BLOCK_SIZE,
        .base.cra_ctxsize       = sizeof(struct atmel_aes_xts_ctx),
-       .base.cra_flags         = CRYPTO_ALG_NEED_FALLBACK,
+       .base.cra_flags         = CRYPTO_ALG_NEED_FALLBACK |
+                                 CRYPTO_ALG_KERN_DRIVER_ONLY,
 
        .min_keysize            = 2 * AES_MIN_KEY_SIZE,
        .max_keysize            = 2 * AES_MAX_KEY_SIZE,
@@ -2220,7 +2221,7 @@ static void atmel_aes_unregister_algs(struct atmel_aes_dev *dd)
 
 static void atmel_aes_crypto_alg_init(struct crypto_alg *alg)
 {
-       alg->cra_flags |= CRYPTO_ALG_ASYNC;
+       alg->cra_flags |= CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY;
        alg->cra_alignmask = 0xf;
        alg->cra_priority = ATMEL_AES_PRIORITY;
        alg->cra_module = THIS_MODULE;
index 67a1706085663420c0c01c17ad122b952f9d666d..2cc36da163e844c19b46cd9166d42a1c6d1b6bc1 100644 (file)
@@ -1254,7 +1254,8 @@ static int atmel_sha_cra_init(struct crypto_tfm *tfm)
 static void atmel_sha_alg_init(struct ahash_alg *alg)
 {
        alg->halg.base.cra_priority = ATMEL_SHA_PRIORITY;
-       alg->halg.base.cra_flags = CRYPTO_ALG_ASYNC;
+       alg->halg.base.cra_flags = CRYPTO_ALG_ASYNC |
+                                  CRYPTO_ALG_KERN_DRIVER_ONLY;
        alg->halg.base.cra_ctxsize = sizeof(struct atmel_sha_ctx);
        alg->halg.base.cra_module = THIS_MODULE;
        alg->halg.base.cra_init = atmel_sha_cra_init;
@@ -2041,7 +2042,8 @@ static void atmel_sha_hmac_cra_exit(struct crypto_tfm *tfm)
 static void atmel_sha_hmac_alg_init(struct ahash_alg *alg)
 {
        alg->halg.base.cra_priority = ATMEL_SHA_PRIORITY;
-       alg->halg.base.cra_flags = CRYPTO_ALG_ASYNC;
+       alg->halg.base.cra_flags = CRYPTO_ALG_ASYNC |
+                                  CRYPTO_ALG_KERN_DRIVER_ONLY;
        alg->halg.base.cra_ctxsize = sizeof(struct atmel_sha_hmac_ctx);
        alg->halg.base.cra_module = THIS_MODULE;
        alg->halg.base.cra_init = atmel_sha_hmac_cra_init;
index de9717e221e4245f79ee356ed2e13a8978ce321a..098f5532f389861fb76f97f5eca27df46ecfd24a 100644 (file)
@@ -785,7 +785,7 @@ static int atmel_tdes_init_tfm(struct crypto_skcipher *tfm)
 static void atmel_tdes_skcipher_alg_init(struct skcipher_alg *alg)
 {
        alg->base.cra_priority = ATMEL_TDES_PRIORITY;
-       alg->base.cra_flags = CRYPTO_ALG_ASYNC;
+       alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY;
        alg->base.cra_ctxsize = sizeof(struct atmel_tdes_ctx);
        alg->base.cra_module = THIS_MODULE;