[NTOS:MM] Fix ASSERT when expanding paged pool
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Mon, 20 Aug 2018 21:52:42 +0000 (23:52 +0200)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Mon, 20 Aug 2018 21:52:42 +0000 (23:52 +0200)
The page directory is double mapped on x86 in the system process, so writing to it will already write to the PDE.

ntoskrnl/mm/ARM3/pool.c

index 113a7aa..9ef703e 100644 (file)
@@ -555,6 +555,8 @@ MiAllocatePoolPages(IN POOL_TYPE PoolType,
                                                (PMMPTE)PointerPde,
                                                PFN_FROM_PTE(MiAddressToPte(PointerPde)));
 
+                /* Write the actual PDE now */
+                MI_WRITE_VALID_PDE(PointerPde, TempPde);
 #else
                 //
                 // Save it into our double-buffered system page directory
@@ -567,9 +569,6 @@ MiAllocatePoolPages(IN POOL_TYPE PoolType,
                                                MmSystemPageDirectory[(PointerPde - MiAddressToPde(NULL)) / PDE_COUNT]);
 #endif
 
-                /* Write the actual PDE now */
-                MI_WRITE_VALID_PDE(PointerPde, TempPde);
-
                 //
                 // Move on to the next expansion address
                 //