From: Harsh Jain Date: Sat, 20 Dec 2025 15:58:58 +0000 (+0530) Subject: crypto: xilinx - Avoid Encrypt request to fallback for authsize < 16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f939b88c7ca56cd307e351cef1683756835a7193;p=thirdparty%2Fkernel%2Flinux.git 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 Signed-off-by: Herbert Xu --- diff --git a/drivers/crypto/xilinx/zynqmp-aes-gcm.c b/drivers/crypto/xilinx/zynqmp-aes-gcm.c index e64316d9cabf4..3b346a1c9f7e4 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) {