]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mmc: sdhci-of-bst: Fix memory leak in sdhci_bst_alloc_bounce_buffer()
authorFelix Gu <ustc.gu@gmail.com>
Mon, 2 Mar 2026 13:47:12 +0000 (21:47 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 9 Mar 2026 13:03:24 +0000 (14:03 +0100)
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>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-of-bst.c

index c124990a64f442881d5a6156ed87a68a6f197688..f8d3df715e1a01fb100908071db471d16a3988d6 100644 (file)
@@ -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(mmc));
                return -ENOMEM;
+       }
 
        host->bounce_buffer_size = bounce_size;