[ros-diffs] [ros-arm-bringup] 34821: - MmDeleteVirtualMapping can be called for memory that isn't mapped yet -- just ignore this like we do on x86. - This gets us much farther, to the point where we try to load smss.exe but can't find it.

ros-arm-bringup at svn.reactos.org ros-arm-bringup at svn.reactos.org
Sun Jul 27 07:38:51 CEST 2008


Author: ros-arm-bringup
Date: Sun Jul 27 00:38:51 2008
New Revision: 34821

URL: http://svn.reactos.org/svn/reactos?rev=34821&view=rev
Log:
- MmDeleteVirtualMapping can be called for memory that isn't mapped yet -- just ignore this like we do on x86.
- This gets us much farther, to the point where we try to load smss.exe but can't find it.


Modified:
    trunk/reactos/ntoskrnl/mm/arm/stubs.c

Modified: trunk/reactos/ntoskrnl/mm/arm/stubs.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/arm/stubs.c?rev=34821&r1=34820&r2=34821&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/mm/arm/stubs.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/mm/arm/stubs.c [iso-8859-1] Sun Jul 27 00:38:51 2008
@@ -293,12 +293,21 @@
     // Get the PTE
     //
     PointerPte = MiGetPteAddress(Address);
+    if (PointerPte->u.Hard.L1.Fault.Type == FaultPte)
+    {
+        //
+        // Invalid PTE
+        //
+        if (WasDirty) *WasDirty = FALSE;
+        if (Page) *Page = 0;
+        return;
+    }
+        
+    //
+    // Save the PTE
+    //
+    Pte = *PointerPte;
     ASSERT(PointerPte->u.Hard.L2.Small.Type == SmallPte);
-    
-    //
-    // Save the PTE
-    //
-    Pte = *PointerPte;
     
     //
     // Destroy the PTE



More information about the Ros-diffs mailing list