Module: wine Branch: master Commit: 05f5cce6c8b8bf527f1c15ee0f87c27370b301eb URL: https://source.winehq.org/git/wine.git/?a=commit;h=05f5cce6c8b8bf527f1c15ee0...
Author: Zebediah Figura z.figura12@gmail.com Date: Sun Jan 27 20:45:33 2019 -0600
ntoskrnl.exe: Implement plain spinlock functions on top of DPC-level ones.
Signed-off-by: Zebediah Figura z.figura12@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ntoskrnl.exe/sync.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/dlls/ntoskrnl.exe/sync.c b/dlls/ntoskrnl.exe/sync.c index 31a3ad7..2a4685c 100644 --- a/dlls/ntoskrnl.exe/sync.c +++ b/dlls/ntoskrnl.exe/sync.c @@ -421,7 +421,7 @@ void WINAPI KeReleaseSpinLockFromDpcLevel( KSPIN_LOCK *lock ) void WINAPI KeReleaseSpinLock( KSPIN_LOCK *lock, KIRQL irql ) { TRACE("lock %p, irql %u.\n", lock, irql); - InterlockedExchangePointer( (void **)lock, 0 ); + KeReleaseSpinLockFromDpcLevel( lock ); }
/*********************************************************************** @@ -430,8 +430,7 @@ void WINAPI KeReleaseSpinLock( KSPIN_LOCK *lock, KIRQL irql ) KIRQL WINAPI KeAcquireSpinLockRaiseToDpc( KSPIN_LOCK *lock ) { TRACE("lock %p.\n", lock); - while (!InterlockedCompareExchangePointer( (void **)lock, (void *)1, (void *)0 )) - small_pause(); + KeAcquireSpinLockAtDpcLevel( lock ); return 0; } #endif