From e97b95cc2eb9e1fb4092adb37493ae91ffbe44e1 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Mon, 20 Aug 2018 23:52:42 +0200 Subject: [PATCH] [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 113a7aa9816..9ef703ef2c9 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 //