Re: [PATCHv2] crypto: cesa: check for sram_dma error
Robin Murphy <[email protected]> Mon, 27 Jul 2026 13:37:24 +0100
| Newsgroups | org.kernel.vger.linux-crypto,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]>
> ---
> 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);
> }