init: poll in first stage mount if required devices are not found
First stage mount in init currently attempts to regenerate uevents for specific devices to create the corresponding dev nodes. However, this is racy as first stage mount happens early in the boot process and it's possible that some of these devices have not yet been created by the kernel. To fix this issue, init will poll on the uevent socket for up to 10 seconds waiting for the kernel to create the required device. It will return false and panic if this 10 second timeout passes. Note that the same uevent socket is used in the uevent regeneration and the polling code, so there is no race if the device is created after the uevent regeneration and before polling starts; the first poll will pick up the device. Bug: 62681642 Bug: 62682821 Test: Boot bullhead Test: Boot sailfish Test: Boot hikey + hotplug/unplug sdcard Merged-In: I4a6ff043eb7115b729ca4954ebc6c9e000132993 Change-Id: I4a6ff043eb7115b729ca4954ebc6c9e000132993
Loading
Please register or sign in to comment