Author: vmikayelyan Date: Fri Aug 19 16:56:35 2016 New Revision: 72393
URL: http://svn.reactos.org/svn/reactos?rev=72393&view=rev Log: usb: hub: PDO: InternalDeviceControl can be called in DPC
As InternalDeviceControl can be called in DPC, we should avoid scanning of parent's child list because it uses guarded mutex for synchronization. So here we just adding new checking for safety and removing isValidPDO() call.
Modified: branches/GSoC_2016/USB/drivers/usb/usbhub/pdo.c
Modified: branches/GSoC_2016/USB/drivers/usb/usbhub/pdo.c URL: http://svn.reactos.org/svn/reactos/branches/GSoC_2016/USB/drivers/usb/usbhub... ============================================================================== --- branches/GSoC_2016/USB/drivers/usb/usbhub/pdo.c [iso-8859-1] (original) +++ branches/GSoC_2016/USB/drivers/usb/usbhub/pdo.c [iso-8859-1] Fri Aug 19 16:56:35 2016 @@ -210,7 +210,7 @@
if (ChildDeviceExtension->Common.PnPState == SurpriseRemovePending || ChildDeviceExtension->Common.PnPState == RemovePending || - !IsValidPDO(DeviceObject)) + ChildDeviceExtension->ParentDeviceObject == NULL) { // Parent or child device was surprise removed. DPRINT1("[USBHUB] Request for removed device object %p\n", DeviceObject);