* [PATCHv2] crypto: cesa: check for sram_dma error
@ 2026-07-17 22:58 Rosen Penev
2026-07-27 0:25 ` Herbert Xu
2026-07-27 12:37 ` Robin Murphy
0 siblings, 2 replies; 3+ messages in thread
From: Rosen Penev @ 2026-07-17 22:58 UTC (permalink / raw)
To: linux-crypto
Cc: Srujana Challa, Bharat Bhushan, Herbert Xu, David S. Miller,
Boris Brezillon, Robin Murphy, open list
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@gmail.com>
---
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 &&
+ !dma_mapping_error(cesa->dev, engine->sram_dma))
dma_unmap_resource(cesa->dev, engine->sram_dma,
cesa->sram_size, DMA_BIDIRECTIONAL, 0);
}
--
2.55.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCHv2] crypto: cesa: check for sram_dma error
2026-07-17 22:58 [PATCHv2] crypto: cesa: check for sram_dma error Rosen Penev
@ 2026-07-27 0:25 ` Herbert Xu
2026-07-27 12:37 ` Robin Murphy
1 sibling, 0 replies; 3+ messages in thread
From: Herbert Xu @ 2026-07-27 0:25 UTC (permalink / raw)
To: Rosen Penev
Cc: linux-crypto, Srujana Challa, Bharat Bhushan, David S. Miller,
Boris Brezillon, Robin Murphy, open list
On Fri, Jul 17, 2026 at 03:58:31PM -0700, 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@gmail.com>
> ---
> v2: use dma_mapping_error(). Fix Fixes tag.
> drivers/crypto/marvell/cesa/cesa.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
I think it would be better to fix mv_cesa_probe to not call the
cleanup functions on uninitialised engines.
err_cleanup:
for (i = 0; i < XXX; i++)
mv_cesa_put_sram(pdev, i);
So replace XXX here with one past the last index that was successfully
initialised.
Cheers,
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCHv2] crypto: cesa: check for sram_dma error
2026-07-17 22:58 [PATCHv2] crypto: cesa: check for sram_dma error Rosen Penev
2026-07-27 0:25 ` Herbert Xu
@ 2026-07-27 12:37 ` Robin Murphy
1 sibling, 0 replies; 3+ messages in thread
From: Robin Murphy @ 2026-07-27 12:37 UTC (permalink / raw)
To: Rosen Penev, linux-crypto
Cc: Srujana Challa, Bharat Bhushan, Herbert Xu, David S. Miller,
Boris Brezillon, open list
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@gmail.com>
> ---
> 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);
> }
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-07-27 12:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-17 22:58 [PATCHv2] crypto: cesa: check for sram_dma error Rosen Penev
2026-07-27 0:25 ` Herbert Xu
2026-07-27 12:37 ` Robin Murphy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox