Messages in this thread | | | Date | Sun, 19 Oct 2008 19:04:25 +0300 | From | Yauhen Kharuzhy <> | Subject | Re: [PATCH] MMC: Fix race condition in resume/card detect code |
| |
On Sat, Oct 18, 2008 at 07:11:47PM +0200, Pierre Ossman wrote: > On Thu, 16 Oct 2008 19:09:36 +0300 > Yauhen Kharuzhy <jekhor@gmail.com> wrote: > > > When device wakes up by card change interrupt and MMC_UNSAFE_RESUME is > > enabled then race condition between mmc_rescan() and > > mmc_resume()/mmc_sd_resume() appeared. > > > > Resume functions can sleep into mmc_remove_card() and at this time > > mmc_rescan() can be called by delayed work handler. Double-free of > > kobject or double-remove of host->card can be result of this. > > > > This patch adds an mutex which deny simultaneous executing of > > mmc_sd_resume()/mmc_resume() and mmc_rescan() functions. Probably, it is > > not right way. > > > > Signed-off-by: Yauhen Kharuzhy <jekhor@gmail.com> > > --- > > Can't we just ask the PM layer if this device is currently resuming, > and if so ignore card notifications from the driver?
What about another idea: mmc_sd_resume() checks if host->detect is scheduled and if true then it don't try to reinitialize card. host->detect can be scheduled at this moment only in one case: if device has been waked up by card change interrupt.
-- Yauhen Kharuzhy jekhor _at_ gmail.com JID: jek@jabber.ru
A: No Q: Should I quote below my post?
| |