merged.
Bruce
In message: [linux-yocto][v6.12/standard/ti-soc &
v6.12/standard/preempt-rt/ti-soc][PATCH] crypto: sa2ul - Fix mempool leak in
sa_dma_init() error path
on 14/01/2026 Xulin Sun wrote:
> Fix a memory leak where the mempool created by mempool_create_kmalloc_pool()
> is not destroyed when dma_request_chan() fails for the rx1 channel.
>
> The mempool is allocated at the beginning of sa_dma_init() with 64 elements
> of 512 bytes each. When dma_request_chan("rx1") fails, the function returns
> directly without calling mempool_destroy(), leaking 32KB of memory.
>
> This issue was detected by kmemleak showing 40+ unreferenced 512-byte objects
> with the following backtrace:
> mempool_create_node_noprof+0xa0/0xf8
> sa_ul_probe+0xf4/0x538
> platform_probe+0x70/0xe8
>
> The fix changes the error handling to use goto err_dma_coerce, ensuring
> mempool_destroy() is called in the cleanup path.
>
> Signed-off-by: Xulin Sun <[email protected]>
> ---
> drivers/crypto/sa2ul.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/crypto/sa2ul.c b/drivers/crypto/sa2ul.c
> index 093b67ac120b..6cbd0bad889c 100644
> --- a/drivers/crypto/sa2ul.c
> +++ b/drivers/crypto/sa2ul.c
> @@ -3393,9 +3393,11 @@ static int sa_dma_init(struct sa_crypto_data *dev_data)
> goto err_dma_coerce;
>
> dev_data->dma_rx1 = dma_request_chan(dev_data->dev, "rx1");
> - if (IS_ERR(dev_data->dma_rx1))
> - return dev_err_probe(dev_data->dev, PTR_ERR(dev_data->dma_rx1),
> - "Unable to request rx1 DMA channel\n");
> + if (IS_ERR(dev_data->dma_rx1)) {
> + ret = dev_err_probe(dev_data->dev, PTR_ERR(dev_data->dma_rx1),
> + "Unable to request rx1 DMA channel\n");
> + goto err_dma_coerce;
> + }
>
> dev_data->dma_rx2 = dma_request_chan(dev_data->dev, "rx2");
> if (IS_ERR(dev_data->dma_rx2)) {
> --
> 2.34.1
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#16185):
https://lists.yoctoproject.org/g/linux-yocto/message/16185
Mute This Topic: https://lists.yoctoproject.org/mt/117257664/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-