2023-12-04 06:32:23

by Jia Jie Ho

[permalink] [raw]
Subject: Re: [PATCH 14/19] crypto: starfive - Remove cfb and ofb

On 30/11/2023 8:28 pm, Herbert Xu wrote:
> Remove the unused CFB/OFB implementation.
>
> Signed-off-by: Herbert Xu <[email protected]>
> ---
>
> drivers/crypto/starfive/jh7110-aes.c | 62 -----------------------------------
> 1 file changed, 62 deletions(-)
>
> diff --git a/drivers/crypto/starfive/jh7110-aes.c b/drivers/crypto/starfive/jh7110-aes.c
> index 9378e6682f0e..d1da9b366bbc 100644
> --- a/drivers/crypto/starfive/jh7110-aes.c
> +++ b/drivers/crypto/starfive/jh7110-aes.c
> @@ -783,26 +783,6 @@ static int starfive_aes_cbc_decrypt(struct skcipher_request *req)
> return starfive_aes_crypt(req, STARFIVE_AES_MODE_CBC);
> }
>
> -static int starfive_aes_cfb_encrypt(struct skcipher_request *req)
> -{
> - return starfive_aes_crypt(req, STARFIVE_AES_MODE_CFB | FLG_ENCRYPT);
> -}
> -
> -static int starfive_aes_cfb_decrypt(struct skcipher_request *req)
> -{
> - return starfive_aes_crypt(req, STARFIVE_AES_MODE_CFB);
> -}
> -
> -static int starfive_aes_ofb_encrypt(struct skcipher_request *req)
> -{
> - return starfive_aes_crypt(req, STARFIVE_AES_MODE_OFB | FLG_ENCRYPT);
> -}
> -
> -static int starfive_aes_ofb_decrypt(struct skcipher_request *req)
> -{
> - return starfive_aes_crypt(req, STARFIVE_AES_MODE_OFB);
> -}
> -
> static int starfive_aes_ctr_encrypt(struct skcipher_request *req)
> {
> return starfive_aes_crypt(req, STARFIVE_AES_MODE_CTR | FLG_ENCRYPT);
> @@ -908,48 +888,6 @@ static struct skcipher_engine_alg skcipher_algs[] = {
> .op = {
> .do_one_request = starfive_aes_do_one_req,
> },
> -}, {
> - .base.init = starfive_aes_init_tfm,
> - .base.setkey = starfive_aes_setkey,
> - .base.encrypt = starfive_aes_cfb_encrypt,
> - .base.decrypt = starfive_aes_cfb_decrypt,
> - .base.min_keysize = AES_MIN_KEY_SIZE,
> - .base.max_keysize = AES_MAX_KEY_SIZE,
> - .base.ivsize = AES_BLOCK_SIZE,
> - .base.base = {
> - .cra_name = "cfb(aes)",
> - .cra_driver_name = "starfive-cfb-aes",
> - .cra_priority = 200,
> - .cra_flags = CRYPTO_ALG_ASYNC,
> - .cra_blocksize = 1,
> - .cra_ctxsize = sizeof(struct starfive_cryp_ctx),
> - .cra_alignmask = 0xf,
> - .cra_module = THIS_MODULE,
> - },
> - .op = {
> - .do_one_request = starfive_aes_do_one_req,
> - },
> -}, {
> - .base.init = starfive_aes_init_tfm,
> - .base.setkey = starfive_aes_setkey,
> - .base.encrypt = starfive_aes_ofb_encrypt,
> - .base.decrypt = starfive_aes_ofb_decrypt,
> - .base.min_keysize = AES_MIN_KEY_SIZE,
> - .base.max_keysize = AES_MAX_KEY_SIZE,
> - .base.ivsize = AES_BLOCK_SIZE,
> - .base.base = {
> - .cra_name = "ofb(aes)",
> - .cra_driver_name = "starfive-ofb-aes",
> - .cra_priority = 200,
> - .cra_flags = CRYPTO_ALG_ASYNC,
> - .cra_blocksize = 1,
> - .cra_ctxsize = sizeof(struct starfive_cryp_ctx),
> - .cra_alignmask = 0xf,
> - .cra_module = THIS_MODULE,
> - },
> - .op = {
> - .do_one_request = starfive_aes_do_one_req,
> - },
> },
> };
>
>

Hi Herbert,
There are a few macros for ofb/cfb.
Could you please help include the following changes too?

diff --git a/drivers/crypto/starfive/jh7110-aes.c b/drivers/crypto/starfive/jh7110-aes.c
index be7fcd77b0f1..1ac15cc4ef3c 100644
--- a/drivers/crypto/starfive/jh7110-aes.c
+++ b/drivers/crypto/starfive/jh7110-aes.c
@@ -262,12 +262,7 @@ static int starfive_aes_hw_init(struct starfive_cryp_ctx *ctx)
rctx->csr.aes.mode = hw_mode;
rctx->csr.aes.cmode = !is_encrypt(cryp);
rctx->csr.aes.ie = 1;
-
- if (hw_mode == STARFIVE_AES_MODE_CFB ||
- hw_mode == STARFIVE_AES_MODE_OFB)
- rctx->csr.aes.stmode = STARFIVE_AES_MODE_XFB_128;
- else
- rctx->csr.aes.stmode = STARFIVE_AES_MODE_XFB_1;
+ rctx->csr.aes.stmode = STARFIVE_AES_MODE_XFB_1;

if (cryp->side_chan) {
rctx->csr.aes.delay_aes = 1;
@@ -294,8 +289,6 @@ static int starfive_aes_hw_init(struct starfive_cryp_ctx *ctx)
starfive_aes_ccm_init(ctx);
starfive_aes_aead_hw_start(ctx, hw_mode);
break;
- case STARFIVE_AES_MODE_OFB:
- case STARFIVE_AES_MODE_CFB:
case STARFIVE_AES_MODE_CBC:
case STARFIVE_AES_MODE_CTR:
starfive_aes_write_iv(ctx, (void *)cryp->req.sreq->iv);
diff --git a/drivers/crypto/starfive/jh7110-cryp.h b/drivers/crypto/starfive/jh7110-cryp.h
index 8510f8c1f307..6cdf6db5d904 100644
--- a/drivers/crypto/starfive/jh7110-cryp.h
+++ b/drivers/crypto/starfive/jh7110-cryp.h
@@ -50,8 +50,6 @@ union starfive_aes_csr {
u32 ccm_start :1;
#define STARFIVE_AES_MODE_ECB 0x0
#define STARFIVE_AES_MODE_CBC 0x1
-#define STARFIVE_AES_MODE_CFB 0x2
-#define STARFIVE_AES_MODE_OFB 0x3
#define STARFIVE_AES_MODE_CTR 0x4
#define STARFIVE_AES_MODE_CCM 0x5
#define STARFIVE_AES_MODE_GCM 0x6

Thanks,
Jia Jie


2023-12-05 04:35:04

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH 14/19] crypto: starfive - Remove cfb and ofb

On Mon, Dec 04, 2023 at 01:21:59PM +0800, Jia Jie Ho wrote:
>
> Hi Herbert,
> There are a few macros for ofb/cfb.
> Could you please help include the following changes too?

Thanks, I've added this to the patch.
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt