]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
crypto: xilinx - Avoid Encrypt request to fallback for authsize < 16
authorHarsh Jain <h.jain@amd.com>
Sat, 20 Dec 2025 15:58:58 +0000 (21:28 +0530)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 23 Jan 2026 05:48:43 +0000 (13:48 +0800)
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>
drivers/crypto/xilinx/zynqmp-aes-gcm.c

index e64316d9cabf4782c7c3d1e4e530c06c6d5f8ae5..3b346a1c9f7e4829a427f920a0c00930982bff10 100644 (file)
@@ -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) {