Revert "[NTOS:MM/x64] Temporarily release AddressCreationLock in MmCreateVirtualMappingUnsafeEx"

This reverts commit e685b25e35.
This commit is contained in:
Timo Kreuzer 2023-10-10 02:42:11 +03:00
parent a662bedab8
commit de3958dc2b

View file

@ -637,9 +637,6 @@ MmCreateVirtualMappingUnsafeEx(
PMMPTE PointerPte;
MMPTE TempPte;
ULONG_PTR Pte;
#ifdef _M_AMD64
BOOLEAN LockReleased = FALSE;
#endif
DPRINT("MmCreateVirtualMappingUnsafe(%p, %p, %lu, %x)\n",
Process, Address, flProtect, Page);
@ -668,15 +665,6 @@ MmCreateVirtualMappingUnsafeEx(
if (!MiSynchronizeSystemPde(MiAddressToPde(Address)))
MiFillSystemPageDirectory(Address, PAGE_SIZE);
#endif
#ifdef _M_AMD64
/* This is a temporary hack, because we can incur a recursive page fault when accessing the PDE */
if (PsIdleProcess->AddressCreationLock.Owner == KeGetCurrentThread())
{
MmUnlockAddressSpace(MmGetKernelAddressSpace());
LockReleased = TRUE;
}
#endif
}
else
{
@ -727,15 +715,6 @@ MmCreateVirtualMappingUnsafeEx(
MiIncrementPageTableReferences(Address);
MiUnlockProcessWorkingSetUnsafe(Process, PsGetCurrentThread());
}
#ifdef _M_AMD64
else
{
if (LockReleased)
{
MmLockAddressSpace(MmGetKernelAddressSpace());
}
}
#endif
return(STATUS_SUCCESS);
}