[PATCH v2 24/34] staging: mt7621-mmc: Fix memory leek in case of error in probe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If the base address is not successfully obtained in the probe
function, then the mmc_host struct is not freed. Adding an exit for
that case fixes the bug.

Signed-off-by: Christian Lütke-Stetzkamp <christian@xxxxxxxx>
---
 drivers/staging/mt7621-mmc/sd.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c
index 5f829f79bfff..065d1b34c258 100644
--- a/drivers/staging/mt7621-mmc/sd.c
+++ b/drivers/staging/mt7621-mmc/sd.c
@@ -2719,8 +2719,10 @@ static int msdc_drv_probe(struct platform_device *pdev)
 	//BUG_ON((!hw) || (!mem) || (irq < 0)); /* --- by chhung */
 
 	base = devm_ioremap_resource(&pdev->dev, res);
-	if (IS_ERR(base))
-		return PTR_ERR(base);
+	if (IS_ERR(base)) {
+		ret = PTR_ERR(base);
+		goto host_free;
+	}
 
 	/* Set host parameters to mmc */
 	mmc->ops        = &mt_msdc_ops;
@@ -2861,6 +2863,7 @@ static int msdc_drv_probe(struct platform_device *pdev)
 	if (mem)
 		release_mem_region(mem->start, mem->end - mem->start + 1);
 
+host_free:
 	mmc_free_host(mmc);
 
 	return ret;
-- 
2.16.1

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux