summaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
authorUlf Hansson <ulf.hansson@linaro.org>2013-07-02 12:53:01 +0200
committerChris Ball <cjb@laptop.org>2013-07-05 12:51:22 -0400
commit203bb5af65d4edaf600d75130438c0c512b05986 (patch)
tree0018cc56c55b591d5ace6f2274d4b6bd3457c6b5 /drivers/mmc
parent30d025c0f7234409e8ee1bf22d1729055e640ec6 (diff)
downloadlinux-203bb5af65d4edaf600d75130438c0c512b05986.tar.gz
linux-203bb5af65d4edaf600d75130438c0c512b05986.tar.bz2
linux-203bb5af65d4edaf600d75130438c0c512b05986.zip
mmc: core: Fixup Oops for SDIO shutdown
Commit "mmc: core: Handle card shutdown from mmc_bus" introduced an Oops in the shutdown sequence for SDIO. The drv pointer, does not exist for SDIO since the probing of the SDIO card from the mmc_bus perspective is expected to fail by returning -ENODEV. This patch adds the proper check for the pointer before calling it. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Reported-by: Stephen Warren <swarren@wwwdotorg.org> Reported-by: Tuomas Tynkkynen <ttynkkynen@nvidia.com> Tested-by: Tuomas Tynkkynen <ttynkkynen@nvidia.com> Acked-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/core/bus.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c
index 4c0decfffb53..d4b99bbe0781 100644
--- a/drivers/mmc/core/bus.c
+++ b/drivers/mmc/core/bus.c
@@ -129,7 +129,8 @@ static void mmc_bus_shutdown(struct device *dev)
struct mmc_host *host = card->host;
int ret;
- drv->shutdown(card);
+ if (dev->driver && drv->shutdown)
+ drv->shutdown(card);
if (host->bus_ops->shutdown) {
ret = host->bus_ops->shutdown(host);