diff options
Diffstat (limited to 'network/netadaptercx/netvadapterlibrary/code/enl.cpp')
| -rw-r--r-- | network/netadaptercx/netvadapterlibrary/code/enl.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/network/netadaptercx/netvadapterlibrary/code/enl.cpp b/network/netadaptercx/netvadapterlibrary/code/enl.cpp index a02fd43f..709c5a1e 100644 --- a/network/netadaptercx/netvadapterlibrary/code/enl.cpp +++ b/network/netadaptercx/netvadapterlibrary/code/enl.cpp @@ -84,10 +84,10 @@ EnlpAffinitizeThread( // next highest numbered proc for 1002, ... ULONG index; #ifdef _WIN64 - BitScanReverse64(&index, (ULONG64)affinity.Mask); + NT_FRE_ASSERTMSG("Failed to find bit", TRUE == BitScanReverse64(&index, (ULONG64)affinity.Mask)); affinity.Mask = (KAFFINITY)((ULONG64)1 << (index - (ProcIndex - 1001))); #else - BitScanReverse(&index, (ULONG)affinity.Mask); + NT_FRE_ASSERTMSG("Failed to find bit", TRUE == BitScanReverse(&index, (ULONG)affinity.Mask)); affinity.Mask = (KAFFINITY)((ULONG)1 << (index - (ProcIndex - 1001))); #endif } @@ -588,7 +588,9 @@ EnlRingDoorBell( ) { InterlockedExchange((volatile LONG *)&Queue->QueueEnd, (LONG)EndIndex); + WdfSpinLockAcquire(Queue->Spinlock); + if (Queue->Armed) { NT_ASSERT(Queue->ArmWaitEvent != NULL); @@ -597,6 +599,7 @@ EnlRingDoorBell( Queue->ArmWaitEvent->Set(); return; } + WdfSpinLockRelease(Queue->Spinlock); } |
