Re: [PATCH 3/4] crypto: iaa - avoid counting fallback decompression bytes
From: Dave Jiang
Date: Tue Jul 14 2026 - 17:57:02 EST
On 7/13/26 9:10 PM, Vinicius Costa Gomes wrote:
> From: Giovanni Cabiddu <giovanni.cabiddu@xxxxxxxxx>
>
> When decompression falls back to deflate-generic after an analytics
> error, the request no longer completes through IAA.
>
> Move decompression byte accounting into the successful IAA completion
> path in both the synchronous and asynchronous flows so decomp_bytes only
> reflects bytes actually processed by IAA.
>
> Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@xxxxxxxxx>
Missing Vinicius sign-off.
Reviewed-by: Dave Jiang <dave.jiang@xxxxxxxxx>
> ---
> drivers/crypto/intel/iaa/iaa_crypto_main.c | 16 +++++++++-------
> 1 file changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/crypto/intel/iaa/iaa_crypto_main.c b/drivers/crypto/intel/iaa/iaa_crypto_main.c
> index fb154959c2aa..8f68b1478476 100644
> --- a/drivers/crypto/intel/iaa/iaa_crypto_main.c
> +++ b/drivers/crypto/intel/iaa/iaa_crypto_main.c
> @@ -1084,15 +1084,17 @@ static void iaa_desc_complete(struct idxd_desc *idxd_desc,
> }
> } else {
> ctx->req->dlen = idxd_desc->iax_completion->output_size;
> +
> + if (!ctx->compress) {
> + update_total_decomp_bytes_in(ctx->req->slen);
> + update_wq_decomp_bytes(iaa_wq->wq, ctx->req->slen);
> + }
> }
>
> /* Update stats */
> if (ctx->compress) {
> update_total_comp_bytes_out(ctx->req->dlen);
> update_wq_comp_bytes(iaa_wq->wq, ctx->req->dlen);
> - } else {
> - update_total_decomp_bytes_in(ctx->req->slen);
> - update_wq_decomp_bytes(iaa_wq->wq, ctx->req->slen);
> }
>
> if (ctx->compress && compression_ctx->verify_compress) {
> @@ -1475,16 +1477,16 @@ static int iaa_decompress(struct crypto_tfm *tfm, struct acomp_req *req,
> }
> } else {
> req->dlen = idxd_desc->iax_completion->output_size;
> +
> + /* Update stats */
> + update_total_decomp_bytes_in(slen);
> + update_wq_decomp_bytes(wq, slen);
> }
>
> *dlen = req->dlen;
>
> if (!ctx->async_mode)
> idxd_free_desc(wq, idxd_desc);
> -
> - /* Update stats */
> - update_total_decomp_bytes_in(slen);
> - update_wq_decomp_bytes(wq, slen);
> out:
> return ret;
> err:
>