diff --git a/drivers/usb/usbhub/pnp.c b/drivers/usb/usbhub/pnp.c index e7203027cf0..c16fc287c69 100644 --- a/drivers/usb/usbhub/pnp.c +++ b/drivers/usb/usbhub/pnp.c @@ -1063,6 +1063,13 @@ USBH_FdoQueryBusRelations(IN PUSBHUB_FDO_EXTENSION HubExtension, if (!(HubExtension->HubFlags & USBHUB_FDO_FLAG_DO_ENUMERATION)) { + // FIXME: this delay makes devices discovery during early boot more reliable + LARGE_INTEGER Interval; + Status = STATUS_SUCCESS; + IoInvalidateDeviceRelations(HubExtension->LowerPDO, BusRelations); + Interval.QuadPart = -10000LL * 1000; // 1 sec. + KeDelayExecutionThread(KernelMode, FALSE, &Interval); + DPRINT_ENUM("USBH_FdoQueryBusRelations: Skip enumeration\n"); goto RelationsWorker; }