Subject: Crash during reboot due to 7628774 "mmc: core: Handle card shutdown from mmc_bus"

From: Stephen Warren <[email-masked]>
Date: Mon, 01 Jul 2013 14:32:58 -0600

It looks like commit 7628774 "mmc: core: Handle card shutdown from
mmc_bus" causes a crash during "reboot" at least on Tegra platforms. The
issue appears to be in:

> static void mmc_bus_shutdown(struct device *dev)
> {
> 	struct mmc_driver *drv = to_mmc_driver(dev->driver);
> 	struct mmc_card *card = mmc_dev_to_card(dev);
> 	struct mmc_host *host = card->host;
> 	int ret;
> 
> 	drv->shutdown(card);

Since drv == NULL.

Is this expected (and hence there's a missing guard on that function
call), or is the root-cause some other issue?