aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorHarsh Jain <h.jain@amd.com>2025-12-20 21:28:58 +0530
committerHerbert Xu <herbert@gondor.apana.org.au>2026-01-23 13:48:43 +0800
commitf939b88c7ca56cd307e351cef1683756835a7193 (patch)
tree27b90f5a23c3a800c1fb9b3ef3336f15ea2420ee /drivers
parent349f0d326d7c9262ac7644cb624ccbcbedd917f9 (diff)
crypto: xilinx - Avoid Encrypt request to fallback for authsize < 16
Encrypt requests can be handled by driver when authsize is less than 16. Signed-off-by: Harsh Jain <h.jain@amd.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/crypto/xilinx/zynqmp-aes-gcm.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/crypto/xilinx/zynqmp-aes-gcm.c b/drivers/crypto/xilinx/zynqmp-aes-gcm.c
index e64316d9cabf..3b346a1c9f7e 100644
--- a/drivers/crypto/xilinx/zynqmp-aes-gcm.c
+++ b/drivers/crypto/xilinx/zynqmp-aes-gcm.c
@@ -150,7 +150,7 @@ static int zynqmp_aes_aead_cipher(struct aead_request *req)
}
} else {
if (hwreq->op == ZYNQMP_AES_ENCRYPT)
- data_size = data_size + ZYNQMP_AES_AUTH_SIZE;
+ data_size = data_size + crypto_aead_authsize(aead);
else
data_size = data_size - ZYNQMP_AES_AUTH_SIZE;
@@ -178,8 +178,8 @@ static int zynqmp_fallback_check(struct zynqmp_aead_tfm_ctx *tfm_ctx,
int need_fallback = 0;
struct zynqmp_aead_req_ctx *rq_ctx = aead_request_ctx(req);
- if (tfm_ctx->authsize != ZYNQMP_AES_AUTH_SIZE)
- need_fallback = 1;
+ if (tfm_ctx->authsize != ZYNQMP_AES_AUTH_SIZE && rq_ctx->op == ZYNQMP_AES_DECRYPT)
+ return 1;
if (tfm_ctx->keysrc == ZYNQMP_AES_KUP_KEY &&
tfm_ctx->keylen != ZYNQMP_AES_KEY_SIZE) {