Hi, On Sat, Jan 14 2012, Steven Liu wrote: > Hi Chris Ball & Greg KH, > > This patch can fix the mmc deadlock when suspen the mmc devices. > > when mmc_pm_notify to do the host->bus_ops->remove, there is deadlock, > because it was locked at mmc_claim_host, so it modify the mmc_claim_host > after the host->bus_ops->remove. > the problem can reproduce at lots of the emmc/sd devices when create > multi partitions,and I have tested this modify at lots of the platform. > > Can this patch fixed? > > Signed-off-by: LiuQi <liuqi@xxxxxxxxxxxxxxx> > Signed-off-by: Jack Qin <qinjian@xxxxxxxxxxxxxxx> > > --- > drivers/mmc/core/core.c | 3 +-- > 1 files changed, 1 insertions(+), 2 deletions(-) > > diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c > index 950b97d..e68a0e8 100644 > --- a/drivers/mmc/core/core.c > +++ b/drivers/mmc/core/core.c > @@ -2431,11 +2431,10 @@ int mmc_pm_notify(struct notifier_block *notify_block, > if (!host->bus_ops || host->bus_ops->suspend) > break; > > - mmc_claim_host(host); > - > if (host->bus_ops->remove) > host->bus_ops->remove(host); > > + mmc_claim_host(host); > mmc_detach_bus(host); > mmc_power_off(host); > mmc_release_host(host); Another version of this patch has already gone to Linus, for 3.3-rc1. Thanks, - Chris. -- Chris Ball <cjb@xxxxxxxxxx> <http://printf.net/> One Laptop Per Child -- 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