[ros-diffs] [cgutman] 56069: [NTOSKRNL] - Fix the unload path - This does expose some bugs: 2 cont-able assertions in ARM3 after unplugging a USB storage device (during usbstor unload), HID unload doesn't seem...
cgutman at svn.reactos.org
cgutman at svn.reactos.org
Tue Mar 6 22:50:13 UTC 2012
Author: cgutman
Date: Tue Mar 6 22:50:13 2012
New Revision: 56069
URL: http://svn.reactos.org/svn/reactos?rev=56069&view=rev
Log:
[NTOSKRNL]
- Fix the unload path
- This does expose some bugs: 2 cont-able assertions in ARM3 after unplugging a USB storage device (during usbstor unload), HID unload doesn't seem to work correctly (somebody still has references to the devices), other issues may pop up too
Modified:
trunk/reactos/ntoskrnl/io/iomgr/device.c
Modified: trunk/reactos/ntoskrnl/io/iomgr/device.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/device.c?rev=56069&r1=56068&r2=56069&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/io/iomgr/device.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/io/iomgr/device.c [iso-8859-1] Tue Mar 6 22:50:13 2012
@@ -377,8 +377,6 @@
/* Check if deletion is pending */
if (ThisExtension->ExtensionFlags & DOE_DELETE_PENDING)
{
- if (!(ThisExtension->ExtensionFlags & DOE_UNLOAD_PENDING)) return;
-
if (DeviceObject->AttachedDevice)
{
DPRINT("Device object is in the middle of a device stack\n");
@@ -415,7 +413,7 @@
*/
if (DeviceObject->ReferenceCount)
{
- DPRINT("Device object still has %d references\n", DeviceObject->ReferenceCount);
+ DPRINT("Device object still has %d references\n", DeviceObject->ReferenceCount);
return;
}
@@ -432,6 +430,17 @@
}
/* Check the next device */
+ DeviceObject = DeviceObject->NextDevice;
+ }
+
+ /* Loop all the device objects */
+ DeviceObject = DriverObject->DeviceObject;
+ while (DeviceObject)
+ {
+ /* Set the unload pending flag */
+ IoGetDevObjExtension(DeviceObject)->ExtensionFlags |= DOE_UNLOAD_PENDING;
+
+ /* Go to the next device */
DeviceObject = DeviceObject->NextDevice;
}
More information about the Ros-diffs
mailing list