RE: [PATCH] OMAP HSMMC: fix a racing case between kmmcd and omap_hsmmc_suspend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Adrian Hunter [mailto:adrian.hunter@xxxxxxxxx]
> Sent: Tuesday, July 06, 2010 1:11 PM
> To: Madhusudhan Chikkature
> Cc: Hunter Adrian (Nokia-D/Helsinki); Ethan Du; linux-mmc; Andrew Morton
> Subject: Re: [PATCH] OMAP HSMMC: fix a racing case between kmmcd and
> omap_hsmmc_suspend
> 
> Hunter Adrian (Nokia-D/Helsinki) wrote:
> > Ethan Du wrote:
> >> If suspend called when kmmcd is doing host->ops->disable,
> >> as kmmcd already increased host->en_dis_recurs to 1, the
> mmc_host_enable
> >> in suspend function will return directly without increase the
> nesting_cnt,
> >> which will cause the followed register access carried out to the
> disabled host.
> >>
> >> mmc_suspend_host will enable host itself. No need to enable host before
> it.
> >> Also works on kmmcd will get flushed in mmc_suspend_host, enable host
> after
> >> it will be safe. So make the mmc_host_enable after it.
> >>
> >> Signed-off-by: Ethan <ethan.too@xxxxxxxxx>
> >
> > Looks good to me
> >
> > Acked-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
> >
> 
> Ping?
> 
> Ethan asked me what is happening to this.
> 
> Is is OK Madhu?
> 
> Andrew can you take it?
> 
Sorry, I missed to look at this patch. It looks good.

Acked-by: Madhusudhan Chikkature <madhu.cr@xxxxxx>

> >> ---
> >>  drivers/mmc/host/omap_hsmmc.c |    2 +-
> >>  1 files changed, 1 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/drivers/mmc/host/omap_hsmmc.c
> b/drivers/mmc/host/omap_hsmmc.c
> >> index b032828..fc74263 100644
> >> --- a/drivers/mmc/host/omap_hsmmc.c
> >> +++ b/drivers/mmc/host/omap_hsmmc.c
> >> @@ -2291,8 +2291,8 @@ static int omap_hsmmc_suspend(struct device *dev)
> >>                         }
> >>                 }
> >>                 cancel_work_sync(&host->mmc_carddetect_work);
> >> -               mmc_host_enable(host->mmc);
> >>                 ret = mmc_suspend_host(host->mmc);
> >> +               mmc_host_enable(host->mmc);
> >>                 if (ret == 0) {
> >>                         omap_hsmmc_disable_irq(host);
> >>                         OMAP_HSMMC_WRITE(host->base, HCTL,
> >> --
> >> 1.5.6.5
> >> --
> >> 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
> >>
> >
> > --
> > 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
> >


--
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


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux