https://git.reactos.org/?p=reactos.git;a=commitdiff;h=c219be9409af429909b14…
commit c219be9409af429909b1433da536516b3c3ab823
Author: Timo Kreuzer <timo.kreuzer(a)reactos.org>
AuthorDate: Sun Feb 4 19:20:56 2018 +0100
Commit: Timo Kreuzer <timo.kreuzer(a)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
//