linuxrc: call udevadm settle after modules_load

udev may still be processing rules and this can cause very bad
things. For instance, modules_load may have loaded an usb host
controller driver and we must wait for the udev rules to terminate.
However, this may lead to other race conditions, but we have
observed that adding scandelay=n where n >= 5 actually fixes the
issue of booting off USB under certain scenarios.
master
Fabio Erculiani 12 years ago
parent 59499bc4e9
commit ba0a7ea078

@ -359,15 +359,19 @@ else
good_msg 'Skipping module load; no modules in the ramdisk!' good_msg 'Skipping module load; no modules in the ramdisk!'
fi fi
# Give udev time to execute all the rules. This may be beneficial
# for usb-storage devices.
is_udev && udevadm settle
# Apply scan delay if specified
sdelay
# If we're mdev, we better wait for all the modules to be loaded. # If we're mdev, we better wait for all the modules to be loaded.
if is_mdev if is_mdev
then then
splashcmd init splashcmd init
fi fi
# Apply scan delay if specified
sdelay
cd / cd /
# Start iSCSI # Start iSCSI

Loading…
Cancel
Save