Make sure compiler doesn't optimize our wait loop away. Patch by Thomas Weidenmueller
Modified: trunk/reactos/ntoskrnl/ke/spinlock.c

Modified: trunk/reactos/ntoskrnl/ke/spinlock.c
--- trunk/reactos/ntoskrnl/ke/spinlock.c	2005-12-30 20:28:35 UTC (rev 20467)
+++ trunk/reactos/ntoskrnl/ke/spinlock.c	2005-12-30 20:31:11 UTC (rev 20468)
@@ -151,7 +151,7 @@
         if (InterlockedBitTestAndSet((PLONG)SpinLock, 0))
         {
             /* Value changed... wait until it's locked */
-            while (*SpinLock == 1) YieldProcessor();
+            while (*(volatile KSPIN_LOCK *)SpinLock == 1) YieldProcessor();
         }
         else
         {