From: Marek Szyprowski Date: Thu, 23 Sep 2010 14:22:05 +0000 (+0200) Subject: mmc: sdhci-s3c: fix NULL ptr access in sdhci_s3c_remove X-Git-Tag: firefly_0821_release~10186^2~848 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ce6258fde20a9d6bb213a8c2acb6fe8a003d6c7b;p=firefly-linux-kernel-4.4.55.git mmc: sdhci-s3c: fix NULL ptr access in sdhci_s3c_remove commit 9320f7cbbdd5febf013b0e91db29189724057738 upstream. If not all clocks have been defined in platform data, the driver will cause a null pointer dereference when it is removed. This patch fixes this issue. Signed-off-by: Marek Szyprowski Signed-off-by: Kyungmin Park Signed-off-by: Andrew Morton Signed-off-by: Chris Ball Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c index 676cd0c327f5..14c5480e059c 100644 --- a/drivers/mmc/host/sdhci-s3c.c +++ b/drivers/mmc/host/sdhci-s3c.c @@ -379,8 +379,10 @@ static int __devexit sdhci_s3c_remove(struct platform_device *pdev) sdhci_remove_host(host, 1); for (ptr = 0; ptr < 3; ptr++) { - clk_disable(sc->clk_bus[ptr]); - clk_put(sc->clk_bus[ptr]); + if (sc->clk_bus[ptr]) { + clk_disable(sc->clk_bus[ptr]); + clk_put(sc->clk_bus[ptr]); + } } clk_disable(sc->clk_io); clk_put(sc->clk_io);