X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdePkg%2FLibrary%2FBaseLib%2FSynchronization.c;h=503313322424a30c97b24feeba6ba17c72448727;hp=cf001ce4d155ebd66d832eef9ec520db6503faaa;hb=c9708dddc1a2d10725860d5e9ac1b4929d0b43f4;hpb=d73991a143dc3200a47b50ecfd184ee43ede7900 diff --git a/MdePkg/Library/BaseLib/Synchronization.c b/MdePkg/Library/BaseLib/Synchronization.c index cf001ce4d1..5033133224 100644 --- a/MdePkg/Library/BaseLib/Synchronization.c +++ b/MdePkg/Library/BaseLib/Synchronization.c @@ -236,8 +236,13 @@ AcquireSpinLockOrFail ( IN OUT SPIN_LOCK *SpinLock ) { + SPIN_LOCK LockValue; + ASSERT (SpinLock != NULL); - ASSERT (*SpinLock == SPIN_LOCK_ACQUIRED || *SpinLock == SPIN_LOCK_RELEASED); + + LockValue = *SpinLock; + ASSERT (LockValue == SPIN_LOCK_ACQUIRED || LockValue == SPIN_LOCK_RELEASED); + return (BOOLEAN)( InterlockedCompareExchangePointer ( (VOID**)SpinLock, @@ -267,8 +272,13 @@ ReleaseSpinLock ( IN OUT SPIN_LOCK *SpinLock ) { + SPIN_LOCK LockValue; + ASSERT (SpinLock != NULL); - ASSERT (*SpinLock == SPIN_LOCK_ACQUIRED || *SpinLock == SPIN_LOCK_RELEASED); + + LockValue = *SpinLock; + ASSERT (LockValue == SPIN_LOCK_ACQUIRED || LockValue == SPIN_LOCK_RELEASED); + *SpinLock = SPIN_LOCK_RELEASED; return SpinLock; }