https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e97b95cc2eb9e1fb4092a…
commit e97b95cc2eb9e1fb4092adb37493ae91ffbe44e1
Author: Timo Kreuzer <timo.kreuzer(a)reactos.org>
AuthorDate: Mon Aug 20 23:52:42 2018 +0200
Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org>
CommitDate: Mon Aug 20 23:52:42 2018 +0200
[NTOS:MM] Fix ASSERT when expanding paged pool
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 | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/ntoskrnl/mm/ARM3/pool.c b/ntoskrnl/mm/ARM3/pool.c
index 113a7aa981..9ef703ef2c 100644
--- a/ntoskrnl/mm/ARM3/pool.c
+++ b/ntoskrnl/mm/ARM3/pool.c
@@ -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
//