https://git.reactos.org/?p=reactos.git;a=commitdiff;h=c219be9409af429909b1433da536516b3c3ab823
commit c219be9409af429909b1433da536516b3c3ab823 Author: Timo Kreuzer <timo.kreu...@reactos.org> AuthorDate: Sun Feb 4 19:20:56 2018 +0100 Commit: Timo Kreuzer <timo.kreu...@reactos.org> CommitDate: Mon Aug 20 18:07:35 2018 +0200 [NTOS:MM] Fix paged pool expansion --- ntoskrnl/mm/ARM3/pool.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ntoskrnl/mm/ARM3/pool.c b/ntoskrnl/mm/ARM3/pool.c index 7cebabe818..113a7aa981 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 //