On 11/01/12 16:51, Arik Nemtsov wrote: > Make sure the host is claimed in all calls of mmc_power_off() during > suspend. In addition make sure mmc_power_off() isn't called twice in > some suspend flows. > > Signed-off-by: Arik Nemtsov <arik@xxxxxxxxxx> > Signed-off-by: Ido Yariv <ido@xxxxxxxxxx> > --- > drivers/mmc/core/core.c | 7 ++++++- > 1 files changed, 6 insertions(+), 1 deletions(-) > > diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c > index 950b97d..d830c5c 100644 > --- a/drivers/mmc/core/core.c > +++ b/drivers/mmc/core/core.c > @@ -2305,6 +2305,7 @@ EXPORT_SYMBOL(mmc_cache_ctrl); > int mmc_suspend_host(struct mmc_host *host) > { > int err = 0; > + bool powered_off = false; > > if (host->caps & MMC_CAP_DISABLE) > cancel_delayed_work(&host->disable); > @@ -2348,6 +2349,7 @@ int mmc_suspend_host(struct mmc_host *host) > mmc_release_host(host); > host->pm_flags = 0; > err = 0; > + powered_off = true; > } > } else { > err = -EBUSY; > @@ -2355,8 +2357,11 @@ int mmc_suspend_host(struct mmc_host *host) > } > mmc_bus_put(host); > > - if (!err && !mmc_card_keep_power(host)) > + if (!powered_off && !err && !mmc_card_keep_power(host)) { > + mmc_claim_host(host); Why not mmc_try_claim_host() etc? > mmc_power_off(host); > + mmc_release_host(host); > + } > > out: > return err; -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html