Re: [PATCHv2] crypto: cesa: check for sram_dma error

From: Robin Murphy

Date: Mon Jul 27 2026 - 08:43:24 EST


On 17/07/2026 11:58 pm, Rosen Penev wrote:
dma_map_resource() might fail. In such a case, don't call
dma_unmap_resource()

Fixes: 37d728f76c41 ("crypto: marvell/cesa - Fix DMA API misuse")
Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
---
v2: use dma_mapping_error(). Fix Fixes tag.
drivers/crypto/marvell/cesa/cesa.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/crypto/marvell/cesa/cesa.c b/drivers/crypto/marvell/cesa/cesa.c
index 75d8ba23d9a2..92e977027c8a 100644
--- a/drivers/crypto/marvell/cesa/cesa.c
+++ b/drivers/crypto/marvell/cesa/cesa.c
@@ -406,7 +406,8 @@ static void mv_cesa_put_sram(struct platform_device *pdev, int idx)
if (engine->pool)
gen_pool_free(engine->pool, (unsigned long)engine->sram_pool,
cesa->sram_size);
- else
+ else if (engine->sram &&

This is still not quite right if the devm_platform_get_and_ioremap_resource() call fails, since engine->sram will then be non-NULL (an ERR_PTR value), but engine->sram_dma is still untouched, and dma_mapping_error(0) is (usually) false.

Thanks,
Robin.

+ !dma_mapping_error(cesa->dev, engine->sram_dma))
dma_unmap_resource(cesa->dev, engine->sram_dma,
cesa->sram_size, DMA_BIDIRECTIONAL, 0);
}