[ros-diffs] [tkreuzer] 56265: [NTOSKRNL] - ObReferenceObject() does NOT return an NTSTATUS. It returns the new reference count. Remove pointless NT_SUCCESS check - Enable interrupts in amd54 page fault handler...

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Wed Mar 28 21:09:03 UTC 2012


Author: tkreuzer
Date: Wed Mar 28 21:09:03 2012
New Revision: 56265

URL: http://svn.reactos.org/svn/reactos?rev=56265&view=rev
Log:
[NTOSKRNL]
- ObReferenceObject() does NOT return an NTSTATUS. It returns the new reference count. Remove pointless NT_SUCCESS check
- Enable interrupts in amd54 page fault handler before calling MmAccessFault
- Add missing MmDecommittedPte for amd64

Modified:
    trunk/reactos/ntoskrnl/cache/section/swapout.c
    trunk/reactos/ntoskrnl/ke/amd64/trap.S
    trunk/reactos/ntoskrnl/mm/amd64/init.c

Modified: trunk/reactos/ntoskrnl/cache/section/swapout.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/cache/section/swapout.c?rev=56265&r1=56264&r2=56265&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/cache/section/swapout.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/cache/section/swapout.c [iso-8859-1] Wed Mar 28 21:09:03 2012
@@ -349,13 +349,7 @@
                 ExReleaseFastMutex(&RmapListLock);
                 goto bail;
             }
-            Status = ObReferenceObject(Process);
-            if (!NT_SUCCESS(Status))
-            {
-                DPRINT("bail\n");
-                ExReleaseFastMutex(&RmapListLock);
-                goto bail;
-            }
+            ObReferenceObject(Process);
             ProcRef = TRUE;
             AddressSpace = &Process->Vm;
         }

Modified: trunk/reactos/ntoskrnl/ke/amd64/trap.S
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/amd64/trap.S?rev=56265&r1=56264&r2=56265&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ke/amd64/trap.S [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ke/amd64/trap.S [iso-8859-1] Wed Mar 28 21:09:03 2012
@@ -416,6 +416,9 @@
     mov rdx, cr2
     mov [rbp  + KTRAP_FRAME_FaultAddress], rdx
 
+    /* Enable interrupts for the page fault handler */
+    sti
+
     /* Call page fault handler */
     mov ecx, [rbp + KTRAP_FRAME_ErrorCode] // StoreInstruction
     and ecx, 1
@@ -428,6 +431,9 @@
     /* Check for success */
     test eax, eax
     jge PageFaultReturn
+
+    /* Disable interrupts again for the debugger */
+    cli
 
     /* Set parameter 1 to error code */
     mov r9d, [rbp + KTRAP_FRAME_ErrorCode]

Modified: trunk/reactos/ntoskrnl/mm/amd64/init.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/amd64/init.c?rev=56265&r1=56264&r2=56265&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/mm/amd64/init.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/mm/amd64/init.c [iso-8859-1] Wed Mar 28 21:09:03 2012
@@ -33,6 +33,9 @@
 /* Template PTE for prototype page */
 MMPTE PrototypePte = {{(MM_READWRITE << MM_PTE_SOFTWARE_PROTECTION_BITS) |
                       PTE_PROTOTYPE | (MI_PTE_LOOKUP_NEEDED << 32)}};
+
+/* Template PTE for decommited page */
+MMPTE MmDecommittedPte = {{MM_DECOMMIT << MM_PTE_SOFTWARE_PROTECTION_BITS}};
 
 /* Address ranges */
 PVOID MiSessionViewEnd;




More information about the Ros-diffs mailing list