[ros-diffs] [pschweitzer] 52117: [NTOSKRNL] Fixes to r52065: - In IopInterlockedDecrementUlong() and IopInterlockedIncrementUlong(), cast received value to volatile before de/incrementing it so ensure strict o...
pschweitzer at svn.reactos.org
pschweitzer at svn.reactos.org
Mon Jun 6 17:03:46 UTC 2011
Author: pschweitzer
Date: Mon Jun 6 17:03:45 2011
New Revision: 52117
URL: http://svn.reactos.org/svn/reactos?rev=52117&view=rev
Log:
[NTOSKRNL]
Fixes to r52065:
- In IopInterlockedDecrementUlong() and IopInterlockedIncrementUlong(), cast received value to volatile before de/incrementing it so ensure strict ordering with spin locks acquisition.
This was brought to you by Alex Ionescu.
Modified:
trunk/reactos/ntoskrnl/io/iomgr/volume.c
Modified: trunk/reactos/ntoskrnl/io/iomgr/volume.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/volume.c?rev=52117&r1=52116&r2=52117&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/io/iomgr/volume.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/io/iomgr/volume.c [iso-8859-1] Mon Jun 6 17:03:45 2011
@@ -314,7 +314,7 @@
ULONG OldValue;
Irql = KeAcquireQueuedSpinLock(Queue);
- OldValue = (*Ulong)++;
+ OldValue = ((volatile ULONG)*Ulong)++;
KeReleaseQueuedSpinLock(Queue, Irql);
return OldValue;
@@ -332,7 +332,7 @@
ULONG OldValue;
Irql = KeAcquireQueuedSpinLock(Queue);
- OldValue = (*Ulong)--;
+ OldValue = ((volatile ULONG)*Ulong)--;
KeReleaseQueuedSpinLock(Queue, Irql);
return OldValue;
More information about the Ros-diffs
mailing list