In days of yore, great fields of USB devices were discovered and initialized
long before they were harvested for use. Race conditions were unknown, and
all was well. As time passed in the land of Linux, the tilling of the bit
fields yielded great reductions in boot time, and there was much rejoicing.
Yet, some dispaired, for things were not as they had once been. The now-
hasty arrival at /bin/init startup meant some USB devices were not yet fully
ripened, leaving /dev/console unopened and network devices unconfigured.
This patch allows boot-time users of devices specified in kernel command line
parameters to wait until discovery and initialization of those devices.
The kernel command line that specify devices are "ip", "root", and "console".
This code supports device discovery on USB and SCSI buses. It mostly
eliminates the need for the rootwait kernel parameter.
This introduction is followed by 7 patches:
1 Basic initdev infrastructure
2 USB device discovery notification
3 Wait for console
4 Wait for network devices
5 USB and SCSI block device notification
6 Additional SCSI block device notification for asynchronous function
7 Wait for block device used for root
(Many thanks to Alan Stern, who said we could solve this without offensive
timeouts and then set about doing the integration into USB and SCSI)
Signed-off-by: David VomLehn <[email protected]>
---