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
                 //

Reply via email to