[PATCH] crypto: atmel - add CRYPTO_ALG_KERN_DRIVER_ONLY flag to atmel-aes, atmel-sha, atmel-tdes drivers

Zixun LI posted 1 patch 9 months ago
There is a newer version of this series
drivers/crypto/atmel-aes.c  | 5 +++--
drivers/crypto/atmel-sha.c  | 6 ++++--
drivers/crypto/atmel-tdes.c | 3 ++-
3 files changed, 9 insertions(+), 5 deletions(-)
[PATCH] crypto: atmel - add CRYPTO_ALG_KERN_DRIVER_ONLY flag to atmel-aes, atmel-sha, atmel-tdes drivers
Posted by Zixun LI 9 months ago
From: Zixun LI <admin@hifiphile.com>

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>
---
 drivers/crypto/atmel-aes.c  | 5 +++--
 drivers/crypto/atmel-sha.c  | 6 ++++--
 drivers/crypto/atmel-tdes.c | 3 ++-
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/crypto/atmel-aes.c b/drivers/crypto/atmel-aes.c
index 90dcae7049b7..8a6ee5ac9956 100644
--- a/drivers/crypto/atmel-aes.c
+++ b/drivers/crypto/atmel-aes.c
@@ -1948,7 +1948,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,
@@ -2471,7 +2472,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;
diff --git a/drivers/crypto/atmel-sha.c b/drivers/crypto/atmel-sha.c
index 3622120add62..40f6ed5b20ee 100644
--- a/drivers/crypto/atmel-sha.c
+++ b/drivers/crypto/atmel-sha.c
@@ -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;
@@ -2043,7 +2044,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;
diff --git a/drivers/crypto/atmel-tdes.c b/drivers/crypto/atmel-tdes.c
index 099b32a10dd7..3a6a890172cd 100644
--- a/drivers/crypto/atmel-tdes.c
+++ b/drivers/crypto/atmel-tdes.c
@@ -898,7 +898,8 @@ 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;
 
-- 
2.48.1
Re: [PATCH] crypto: atmel - add CRYPTO_ALG_KERN_DRIVER_ONLY flag to atmel-aes, atmel-sha, atmel-tdes drivers
Posted by Herbert Xu 8 months, 1 week ago
On Wed, Mar 19, 2025 at 04:06:56PM +0100, Zixun LI wrote:
> 
> diff --git a/drivers/crypto/atmel-aes.c b/drivers/crypto/atmel-aes.c
> index 90dcae7049b7..8a6ee5ac9956 100644
> --- a/drivers/crypto/atmel-aes.c
> +++ b/drivers/crypto/atmel-aes.c
> @@ -1948,7 +1948,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,

This should be indented like this:

	.base.cra_flags		= CRYPTO_ALG_NEED_FALLBACK |
				  CRYPTO_ALG_KERN_DRIVER_ONLY,

> diff --git a/drivers/crypto/atmel-sha.c b/drivers/crypto/atmel-sha.c
> index 3622120add62..40f6ed5b20ee 100644
> --- a/drivers/crypto/atmel-sha.c
> +++ b/drivers/crypto/atmel-sha.c
> @@ -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_flags = CRYPTO_ALG_ASYNC |
				   CRYPTO_ALG_KERN_DRIVER_ONLY;

> @@ -2043,7 +2044,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_flags = CRYPTO_ALG_ASYNC |
				   CRYPTO_ALG_KERN_DRIVER_ONLY;

> diff --git a/drivers/crypto/atmel-tdes.c b/drivers/crypto/atmel-tdes.c
> index 099b32a10dd7..3a6a890172cd 100644
> --- a/drivers/crypto/atmel-tdes.c
> +++ b/drivers/crypto/atmel-tdes.c
> @@ -898,7 +898,8 @@ 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;

This fits on one line, no need to split.

Thanks,
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt