https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e97b95cc2eb9e1fb4092adb37493ae91ffbe44e1

commit e97b95cc2eb9e1fb4092adb37493ae91ffbe44e1
Author:     Timo Kreuzer <timo.kreu...@reactos.org>
AuthorDate: Mon Aug 20 23:52:42 2018 +0200
Commit:     Timo Kreuzer <timo.kreu...@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
                 //

Reply via email to