Author: tkreuzer
Date: Fri Nov 22 12:23:11 2013
New Revision: 61075

URL: http://svn.reactos.org/svn/reactos?rev=61075&view=rev
Log:
[NTOSKRNL]
Check the PTE as well in MmArmAccessFault, when we are at high IRQL and fail if 
it's not valid. Otherwise we just end up in an endless loop.

Modified:
    trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c

Modified: trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c?rev=61075&r1=61074&r2=61075&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c   [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c   [iso-8859-1] Fri Nov 22 
12:23:11 2013
@@ -1365,9 +1365,10 @@
 #if (_MI_PAGING_LEVELS >= 3)
             (PointerPpe->u.Hard.Valid == 0) ||
 #endif
-            (PointerPde->u.Hard.Valid == 0))
-        {
-            /* This fault is not valid, printf out some debugging help */
+            (PointerPde->u.Hard.Valid == 0) ||
+            (PointerPte->u.Hard.Valid == 0))
+        {
+            /* This fault is not valid, print out some debugging help */
             DbgPrint("MM:***PAGE FAULT AT IRQL > 1  Va %p, IRQL %lx\n",
                      Address,
                      OldIrql);
@@ -1411,7 +1412,7 @@
         }
 
         /* Nothing is actually wrong */
-        DPRINT1("Fault at IRQL1 is ok\n");
+        DPRINT1("Fault at IRQL %u is ok (%p)\n", OldIrql, Address);
         return STATUS_SUCCESS;
     }
 


Reply via email to