diff options
author | Marek Szyprowski <m.szyprowski@samsung.com> | 2010-09-23 10:22:05 -0400 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2010-09-26 16:27:05 -0400 |
commit | 9320f7cbbdd5febf013b0e91db29189724057738 (patch) | |
tree | 8ba7a24a1c7dfe696bfadf4035f39011eba8d49a /drivers | |
parent | 06fe577f841f383b2d4f743cfb74fac7f6468353 (diff) |
mmc: sdhci-s3c: fix NULL ptr access in sdhci_s3c_remove
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 <m.szyprowski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mmc/host/sdhci-s3c.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c index 735d431f09e6..aacb862ecc8a 100644 --- a/drivers/mmc/host/sdhci-s3c.c +++ b/drivers/mmc/host/sdhci-s3c.c | |||
@@ -483,8 +483,10 @@ static int __devexit sdhci_s3c_remove(struct platform_device *pdev) | |||
483 | sdhci_remove_host(host, 1); | 483 | sdhci_remove_host(host, 1); |
484 | 484 | ||
485 | for (ptr = 0; ptr < 3; ptr++) { | 485 | for (ptr = 0; ptr < 3; ptr++) { |
486 | clk_disable(sc->clk_bus[ptr]); | 486 | if (sc->clk_bus[ptr]) { |
487 | clk_put(sc->clk_bus[ptr]); | 487 | clk_disable(sc->clk_bus[ptr]); |
488 | clk_put(sc->clk_bus[ptr]); | ||
489 | } | ||
488 | } | 490 | } |
489 | clk_disable(sc->clk_io); | 491 | clk_disable(sc->clk_io); |
490 | clk_put(sc->clk_io); | 492 | clk_put(sc->clk_io); |