Re: [PATCH] MMC: Flush mmc workqueue late in the boot sequence

From: Haavard Skinnemoen
Date: Thu May 10 2007 - 08:37:48 EST


On Thu, 10 May 2007 14:04:25 +0200
Pierre Ossman <drzeus@xxxxxxxxx> wrote:

> Haavard Skinnemoen wrote:
> > At some point before 2.6.20, the mmc subsystem moved the card
> > detection code to its own workqueue. One consequence of this change
> > is that when using an mmc card as a root device, the card may get
> > detected after the init task attempts to mount the root filesystem,
> > causing a kernel panic because the root device could not be opened.
> >
> > This patch adds a call to mmc_flush_scheduled_work() late in the boot
> > sequence so that we can be sure the mmc card detection scans are
> > complete before attempting to use an mmc device as a root device.
> >
> > Signed-off-by: Haavard Skinnemoen <hskinnemoen@xxxxxxxxx>
>
> NAK. This is still hackish and not a reliable, controlled way of handling the
> issue of rootfs on removable media.

What exactly makes this unreliable? This is done almost exactly the
same way for SCSI. See drivers/scsi/scsi_wait_scan.c.

> For reference, how is this handled in USB (which is conceptually identical)? The
> normal case for removable media is usually an initrd that can wait for hotplug
> events.

I don't know about USB, but root=/dev/mmcblk0p1 used to work before
2.6.20 and it doesn't work anymore. Doesn't that make this a regression?

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