[NTOS:MM] Pass The FaultCode to MmArmAcceessFault as well and translate it there...
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Mon, 1 Jan 2018 21:52:37 +0000 (22:52 +0100)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Sat, 6 Jan 2018 17:20:24 +0000 (18:20 +0100)
No functional changes.

ntoskrnl/mm/ARM3/miarm.h
ntoskrnl/mm/ARM3/pagfault.c
ntoskrnl/mm/mmfault.c

index b68d680..00801d8 100644 (file)
@@ -1766,7 +1766,7 @@ MiRosProtectVirtualMemory(
 NTSTATUS
 NTAPI
 MmArmAccessFault(
-    IN BOOLEAN StoreInstruction,
+    IN ULONG FaultCode,
     IN PVOID Address,
     IN KPROCESSOR_MODE Mode,
     IN PVOID TrapInformation
index 3176a6b..b85a25b 100644 (file)
@@ -1618,7 +1618,7 @@ MiDispatchFault(IN BOOLEAN StoreInstruction,
 
 NTSTATUS
 NTAPI
-MmArmAccessFault(IN BOOLEAN StoreInstruction,
+MmArmAccessFault(IN ULONG FaultCode,
                  IN PVOID Address,
                  IN KPROCESSOR_MODE Mode,
                  IN PVOID TrapInformation)
@@ -1644,6 +1644,7 @@ MmArmAccessFault(IN BOOLEAN StoreInstruction,
     ULONG Color;
     BOOLEAN IsSessionAddress;
     PMMPFN Pfn1;
+    BOOLEAN StoreInstruction = !MI_IS_NOT_PRESENT_FAULT(FaultCode);
     DPRINT("ARM3 FAULT AT: %p\n", Address);
 
     /* Check for page fault on high IRQL */
index 12774d6..68910e7 100644 (file)
@@ -207,7 +207,6 @@ MmAccessFault(IN ULONG FaultCode,
               IN PVOID TrapInformation)
 {
     PMEMORY_AREA MemoryArea = NULL;
-    BOOLEAN StoreInstruction = !MI_IS_NOT_PRESENT_FAULT(FaultCode);
 
     /* Cute little hack for ROS */
     if ((ULONG_PTR)Address >= (ULONG_PTR)MmSystemRangeStart)
@@ -227,7 +226,7 @@ MmAccessFault(IN ULONG FaultCode,
     {
         /* This is an ARM3 fault */
         DPRINT("ARM3 fault %p\n", MemoryArea);
-        return MmArmAccessFault(StoreInstruction, Address, Mode, TrapInformation);
+        return MmArmAccessFault(FaultCode, Address, Mode, TrapInformation);
     }
 
     /* Is there a ReactOS address space yet? */
@@ -249,11 +248,11 @@ MmAccessFault(IN ULONG FaultCode,
     {
         /* This is an ARM3 fault */
         DPRINT("ARM3 fault %p\n", MemoryArea);
-        return MmArmAccessFault(StoreInstruction, Address, Mode, TrapInformation);
+        return MmArmAccessFault(FaultCode, Address, Mode, TrapInformation);
     }
 
     /* Keep same old ReactOS Behaviour */
-    if (StoreInstruction)
+    if (!MI_IS_NOT_PRESENT_FAULT(FaultCode))
     {
         /* Call access fault */
         return MmpAccessFault(Mode, (ULONG_PTR)Address, TrapInformation ? FALSE : TRUE);