public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH] mmc: sdhci-of-bst: Fix memory leak in sdhci_bst_alloc_bounce_buffer()
@ 2026-03-01  7:53 Felix Gu
  2026-03-02 12:42 ` Adrian Hunter
  0 siblings, 1 reply; 3+ messages in thread
From: Felix Gu @ 2026-03-01  7:53 UTC (permalink / raw)
  To: Adrian Hunter, Ge Gordon, BST Linux Kernel Upstream Group,
	Ulf Hansson, Albert Yang, Arnd Bergmann
  Cc: linux-arm-kernel, linux-mmc, linux-kernel, Felix Gu

In sdhci_bst_alloc_bounce_buffer(), if dma_alloc_coherent() fails, the
function immediately returns -ENOMEM without releasing the reserved
memory, which results in a memory leak.

Add the missing of_reserved_mem_device_release() call before returning
-ENOMEM to properly clean up the reserved memory.

Fixes: 695824f45629 ("mmc: sdhci: add Black Sesame Technologies BST C1200 controller driver")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
---
 drivers/mmc/host/sdhci-of-bst.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sdhci-of-bst.c b/drivers/mmc/host/sdhci-of-bst.c
index c124990a64f4..79c945f4858e 100644
--- a/drivers/mmc/host/sdhci-of-bst.c
+++ b/drivers/mmc/host/sdhci-of-bst.c
@@ -425,8 +425,10 @@ static int sdhci_bst_alloc_bounce_buffer(struct sdhci_host *host)
 
 	host->bounce_buffer = dma_alloc_coherent(mmc_dev(mmc), bounce_size,
 						 &host->bounce_addr, GFP_KERNEL);
-	if (!host->bounce_buffer)
+	if (!host->bounce_buffer) {
+		of_reserved_mem_device_release(mmc_dev(host->mmc));
 		return -ENOMEM;
+	}
 
 	host->bounce_buffer_size = bounce_size;
 

---
base-commit: 3fa5e5702a82d259897bd7e209469bc06368bf31
change-id: 20260301-bst-76bb7c6d7931

Best regards,
-- 
Felix Gu <ustc.gu@gmail.com>



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] mmc: sdhci-of-bst: Fix memory leak in sdhci_bst_alloc_bounce_buffer()
  2026-03-01  7:53 [PATCH] mmc: sdhci-of-bst: Fix memory leak in sdhci_bst_alloc_bounce_buffer() Felix Gu
@ 2026-03-02 12:42 ` Adrian Hunter
  2026-03-02 13:26   ` Felix Gu
  0 siblings, 1 reply; 3+ messages in thread
From: Adrian Hunter @ 2026-03-02 12:42 UTC (permalink / raw)
  To: Felix Gu, Ge Gordon, BST Linux Kernel Upstream Group, Ulf Hansson,
	Albert Yang, Arnd Bergmann
  Cc: linux-arm-kernel, linux-mmc, linux-kernel

On 01/03/2026 09:53, Felix Gu wrote:
> In sdhci_bst_alloc_bounce_buffer(), if dma_alloc_coherent() fails, the
> function immediately returns -ENOMEM without releasing the reserved
> memory, which results in a memory leak.
> 
> Add the missing of_reserved_mem_device_release() call before returning
> -ENOMEM to properly clean up the reserved memory.
> 
> Fixes: 695824f45629 ("mmc: sdhci: add Black Sesame Technologies BST C1200 controller driver")
> Signed-off-by: Felix Gu <ustc.gu@gmail.com>
> ---
>  drivers/mmc/host/sdhci-of-bst.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/host/sdhci-of-bst.c b/drivers/mmc/host/sdhci-of-bst.c
> index c124990a64f4..79c945f4858e 100644
> --- a/drivers/mmc/host/sdhci-of-bst.c
> +++ b/drivers/mmc/host/sdhci-of-bst.c
> @@ -425,8 +425,10 @@ static int sdhci_bst_alloc_bounce_buffer(struct sdhci_host *host)
>  
>  	host->bounce_buffer = dma_alloc_coherent(mmc_dev(mmc), bounce_size,
>  						 &host->bounce_addr, GFP_KERNEL);
> -	if (!host->bounce_buffer)
> +	if (!host->bounce_buffer) {
> +		of_reserved_mem_device_release(mmc_dev(host->mmc));

Please use the same expression for the device as the rest of the
function i.e. change "mmc_dev(host->mmc)" to "mmc_dev(mmc)"


>  		return -ENOMEM;
> +	}
>  
>  	host->bounce_buffer_size = bounce_size;
>  
> 
> ---
> base-commit: 3fa5e5702a82d259897bd7e209469bc06368bf31
> change-id: 20260301-bst-76bb7c6d7931
> 
> Best regards,



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] mmc: sdhci-of-bst: Fix memory leak in sdhci_bst_alloc_bounce_buffer()
  2026-03-02 12:42 ` Adrian Hunter
@ 2026-03-02 13:26   ` Felix Gu
  0 siblings, 0 replies; 3+ messages in thread
From: Felix Gu @ 2026-03-02 13:26 UTC (permalink / raw)
  To: Adrian Hunter
  Cc: Ge Gordon, BST Linux Kernel Upstream Group, Ulf Hansson,
	Albert Yang, Arnd Bergmann, linux-arm-kernel, linux-mmc,
	linux-kernel

> Please use the same expression for the device as the rest of the
> function i.e. change "mmc_dev(host->mmc)" to "mmc_dev(mmc)"
>
Hi Adrian,
I will update it in V2.

Best regards,
Felix


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-03-02 13:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-01  7:53 [PATCH] mmc: sdhci-of-bst: Fix memory leak in sdhci_bst_alloc_bounce_buffer() Felix Gu
2026-03-02 12:42 ` Adrian Hunter
2026-03-02 13:26   ` Felix Gu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox