From: Suniel Mahesh <suni...@techveda.org>

priv pointer should be freed before returning with an error value
from exynos_dwmci_get_config().

Signed-off-by: Suniel Mahesh <suni...@techveda.org>
Signed-off-by: Raghu Bharadwaj <ra...@techveda.org>
---
Changes for v2:
- rebased on latest u-boot tree (2017.11.rc1)
- patch was accepted long time ago, but not applied to u-boot-mmc,
  please apply.
---
Note:
Tested on latest u-boot mainline tree, no build issues.
---
 drivers/mmc/exynos_dw_mmc.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/mmc/exynos_dw_mmc.c b/drivers/mmc/exynos_dw_mmc.c
index 40f7892..84ef2da 100644
--- a/drivers/mmc/exynos_dw_mmc.c
+++ b/drivers/mmc/exynos_dw_mmc.c
@@ -168,6 +168,7 @@ static int exynos_dwmci_get_config(const void *blob, int 
node,
 
        if (host->dev_index > 4) {
                printf("DWMMC%d: Can't get the dev index\n", host->dev_index);
+               free(priv);
                return -EINVAL;
        }
 
@@ -178,6 +179,7 @@ static int exynos_dwmci_get_config(const void *blob, int 
node,
        base = fdtdec_get_addr(blob, node, "reg");
        if (!base) {
                printf("DWMMC%d: Can't get base address\n", host->dev_index);
+               free(priv);
                return -EINVAL;
        }
        host->ioaddr = (void *)base;
@@ -187,6 +189,7 @@ static int exynos_dwmci_get_config(const void *blob, int 
node,
        if (err) {
                printf("DWMMC%d: Can't get sdr-timings for devider\n",
                                host->dev_index);
+               free(priv);
                return -EINVAL;
        }
 
-- 
1.9.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to