I'm not using an initrd, most of my kernel is builtin, just a few modules for occasional filesystems. CONFIG_MODULES=y CONFIG_SCSI=y CONFIG_SCSI_SCAN_ASYNC=y CONFIG_SCSI_WAIT_SCAN=m 2.6.21-rc5-mm2 VFS panics unable to find my root on /dev/sda2, but boots okay if I change drivers/scsi/Kconfig to "default y" instead of "default m" for SCSI_WAIT_SCAN. I'm sure that's not the right fix, but I don't know what is. I've had no trouble with SCSI_SCAN_ASYNC=y until now: I could turn it off, but others may have trouble with the same regression. Hugh -
Hmm ... it sounds like there's a missing scsi_complete_async_scans() in your environment? What's your configuration ... which SCSI drivers, and which are modules? scsi_wait_async_scan is supposed to be unnecessary unless you have modular SCSI drivers that the initrd needs to wait for root on. James -
Fusion MPT: neither that nor the rest of SCSI modular (apart from this > modular SCSI drivers that the initrd needs to wait for root on.
Situation unchanged in 2.6.21-rc5-mm4. By what route do you expect scsi_complete_async_scans() to get called usually, in a monolithic kernel? Before you made scsi_wait_scan a separate loadable module, it was called via that late_initcall(wait_scan_init), so perhaps now we need... Make sure there's a late_initcall to scsi_complete_async_scans when it's built in, so a monolithic SCSI_SCAN_ASYNC kernel can rely on the scans being completed before trying to mount root, even if they're slow. Signed-off-by: Hugh Dickins <hugh@veritas.com> --- 2.6.21-rc5-mm4/drivers/scsi/scsi_scan.c 2007-04-03 15:29:21.000000000 +0100 +++ linux/drivers/scsi/scsi_scan.c 2007-04-03 17:24:24.000000000 +0100 @@ -183,6 +183,7 @@ int scsi_complete_async_scans(void) /* Only exported for the benefit of scsi_wait_scan */ EXPORT_SYMBOL_GPL(scsi_complete_async_scans); +late_initcall(scsi_complete_async_scans); /** * scsi_unlock_floptical - unlock device via a special MODE SENSE command -
