Patch by Hartmut Birr Work around what seems to be a bug in GCC for optimized builds. See http://reactos.com:8080/archives/public/ros-dev/2005-June/003842.html Modified: trunk/reactos/ntoskrnl/io/driver.c _____
Modified: trunk/reactos/ntoskrnl/io/driver.c --- trunk/reactos/ntoskrnl/io/driver.c 2005-06-21 04:52:46 UTC (rev 16205) +++ trunk/reactos/ntoskrnl/io/driver.c 2005-06-21 16:35:41 UTC (rev 16206) @@ -1659,16 +1659,16 @@
KeAcquireSpinLock(&DriverReinitListLock, &Irql);
- if (DriverReinitTailEntry == NULL) + Entry = DriverReinitTailEntry; + + KeReleaseSpinLock(&DriverReinitListLock, + Irql); + + if (Entry == NULL) { - KeReleaseSpinLock(&DriverReinitListLock, - Irql); return; }
- KeReleaseSpinLock(&DriverReinitListLock, - Irql); - for (;;) { Entry = ExInterlockedRemoveHeadList(&DriverReinitListHead,