From: Timo Kreuzer Date: Sun, 4 Feb 2018 18:20:56 +0000 (+0100) Subject: [NTOS:MM] Fix paged pool expansion X-Git-Tag: 0.4.11-dev~29 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=c219be9409af429909b1433da536516b3c3ab823 [NTOS:MM] Fix paged pool expansion --- diff --git a/ntoskrnl/mm/ARM3/pool.c b/ntoskrnl/mm/ARM3/pool.c index 7cebabe818e..113a7aa9816 100644 --- a/ntoskrnl/mm/ARM3/pool.c +++ b/ntoskrnl/mm/ARM3/pool.c @@ -550,7 +550,11 @@ MiAllocatePoolPages(IN POOL_TYPE PoolType, TempPde.u.Hard.PageFrameNumber = PageFrameNumber; #if (_MI_PAGING_LEVELS >= 3) /* On PAE/x64 systems, there's no double-buffering */ - ASSERT(FALSE); + /* Initialize the PFN entry for it */ + MiInitializePfnForOtherProcess(PageFrameNumber, + (PMMPTE)PointerPde, + PFN_FROM_PTE(MiAddressToPte(PointerPde))); + #else // // Save it into our double-buffered system page directory @@ -561,10 +565,11 @@ MiAllocatePoolPages(IN POOL_TYPE PoolType, MiInitializePfnForOtherProcess(PageFrameNumber, (PMMPTE)PointerPde, MmSystemPageDirectory[(PointerPde - MiAddressToPde(NULL)) / PDE_COUNT]); +#endif /* Write the actual PDE now */ -// MI_WRITE_VALID_PDE(PointerPde, TempPde); -#endif + MI_WRITE_VALID_PDE(PointerPde, TempPde); + // // Move on to the next expansion address //