]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
crypto: rockchip - Fix dma_unmap_sg() nents value
authorThomas Fourier <fourier.thomas@gmail.com>
Mon, 20 Oct 2025 16:23:42 +0000 (12:23 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Oct 2025 13:01:24 +0000 (14:01 +0100)
[ Upstream commit 21140e5caf019e4a24e1ceabcaaa16bd693b393f ]

The dma_unmap_sg() functions should be called with the same nents as the
dma_map_sg(), not the value the map function returned.

Fixes: 57d67c6e8219 ("crypto: rockchip - rework by using crypto_engine")
Cc: <stable@vger.kernel.org>
Signed-off-by: Thomas Fourier <fourier.thomas@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
[ removed unused rctx variable declaration since device pointer already came from tctx->dev->dev instead of rctx->dev ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/crypto/rockchip/rk3288_crypto_ahash.c

index edd40e16a3f0a765a78b8662a8a9166932097940..087b7c41c58dadbeb3a4f6ff4f80d9babf297e78 100644 (file)
@@ -236,10 +236,9 @@ static int rk_hash_unprepare(struct crypto_engine *engine, void *breq)
 {
        struct ahash_request *areq = container_of(breq, struct ahash_request, base);
        struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
-       struct rk_ahash_rctx *rctx = ahash_request_ctx(areq);
        struct rk_ahash_ctx *tctx = crypto_ahash_ctx(tfm);
 
-       dma_unmap_sg(tctx->dev->dev, areq->src, rctx->nrsg, DMA_TO_DEVICE);
+       dma_unmap_sg(tctx->dev->dev, areq->src, sg_nents(areq->src), DMA_TO_DEVICE);
        return 0;
 }