Fix deadlock by reducing lock scope
This commit is contained in:
@@ -165,6 +165,8 @@ MM::KernelPool::FreeKernelStack(IN PVOID Stack,
|
||||
/* Convert the stack size into a page count */
|
||||
StackPages = SIZE_TO_PAGES(StackSize);
|
||||
|
||||
/* Start guarded code block */
|
||||
{
|
||||
/* Acquire the PFN database lock */
|
||||
KE::QueuedSpinLockGuard SpinLock(SystemSpaceLock);
|
||||
|
||||
@@ -181,6 +183,7 @@ MM::KernelPool::FreeKernelStack(IN PVOID Stack,
|
||||
/* Advance to the next PTE */
|
||||
PointerPte = MM::Paging::AdvancePte(PointerPte, -1);
|
||||
}
|
||||
}
|
||||
|
||||
/* Release all system PTEs used by the stack, including the guard page */
|
||||
MM::Pte::ReleaseSystemPtes(PointerPte, StackPages + 1, SystemPteSpace);
|
||||
|
||||
Reference in New Issue
Block a user