Re: [PATCH] MMC: Fix race condition in resume/card detect code

From: Pierre Ossman
Date: Sat Oct 18 2008 - 13:12:11 EST


On Thu, 16 Oct 2008 19:09:36 +0300
Yauhen Kharuzhy <jekhor@xxxxxxxxx> 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@xxxxxxxxx>
> ---

Can't we just ask the PM layer if this device is currently resuming,
and if so ignore card notifications from the driver?

--
-- Pierre Ossman

Linux kernel, MMC maintainer http://www.kernel.org
rdesktop, core developer http://www.rdesktop.org

WARNING: This correspondence is being monitored by the
Swedish government. Make sure your server uses encryption
for SMTP traffic and consider using PGP for end-to-end
encryption.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/