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; PMMPTE PointerPte;
MMPTE TempPte; MMPTE TempPte;
ULONG_PTR Pte; ULONG_PTR Pte;
#ifdef _M_AMD64
BOOLEAN LockReleased = FALSE;
#endif
DPRINT("MmCreateVirtualMappingUnsafe(%p, %p, %lu, %x)\n", DPRINT("MmCreateVirtualMappingUnsafe(%p, %p, %lu, %x)\n",
Process, Address, flProtect, Page); Process, Address, flProtect, Page);
@ -668,15 +665,6 @@ MmCreateVirtualMappingUnsafeEx(
if (!MiSynchronizeSystemPde(MiAddressToPde(Address))) if (!MiSynchronizeSystemPde(MiAddressToPde(Address)))
MiFillSystemPageDirectory(Address, PAGE_SIZE); MiFillSystemPageDirectory(Address, PAGE_SIZE);
#endif #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 else
{ {
@ -727,15 +715,6 @@ MmCreateVirtualMappingUnsafeEx(
MiIncrementPageTableReferences(Address); MiIncrementPageTableReferences(Address);
MiUnlockProcessWorkingSetUnsafe(Process, PsGetCurrentThread()); MiUnlockProcessWorkingSetUnsafe(Process, PsGetCurrentThread());
} }
#ifdef _M_AMD64
else
{
if (LockReleased)
{
MmLockAddressSpace(MmGetKernelAddressSpace());
}
}
#endif
return(STATUS_SUCCESS); return(STATUS_SUCCESS);
} }