[ros-diffs] [sir_richard] 56316: [NTOS]: Correctly handle transition vs free PTEs in MiDecrementShareCount.

sir_richard at svn.reactos.org sir_richard at svn.reactos.org
Mon Apr 2 06:54:42 UTC 2012


Author: sir_richard
Date: Mon Apr  2 06:54:41 2012
New Revision: 56316

URL: http://svn.reactos.org/svn/reactos?rev=56316&view=rev
Log:
[NTOS]: Correctly handle transition vs free PTEs in MiDecrementShareCount.

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

Modified: trunk/reactos/ntoskrnl/mm/ARM3/pfnlist.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/ARM3/pfnlist.c?rev=56316&r1=56315&r2=56316&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/mm/ARM3/pfnlist.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/mm/ARM3/pfnlist.c [iso-8859-1] Mon Apr  2 06:54:41 2012
@@ -1233,9 +1233,6 @@
         ASSERT(Pfn1->u3.e2.ReferenceCount != 0);
         if (Pfn1->u3.e2.ReferenceCount == 1)
         {
-            /* In ReactOS, this path should always be hit with a deleted PFN */
-            ASSERT((MI_IS_PFN_DELETED(Pfn1) == TRUE) || (Pfn1->u3.e1.PrototypePte == 1));
-#if 0 // INVESTIGATE
             /* Is there still a PFN for this page? */
             if (MI_IS_PFN_DELETED(Pfn1) == TRUE)
             {
@@ -1254,17 +1251,6 @@
                 /* PFN not yet deleted, drop a ref count */
                 MiDecrementReferenceCount(Pfn1, PageFrameIndex);
             }
-#endif
-
-            /* Clear the last reference */
-            Pfn1->u3.e2.ReferenceCount = 0;
-            ASSERT(Pfn1->OriginalPte.u.Soft.Prototype == 0);
-
-            /* Mark the page temporarily as valid, we're going to make it free soon */
-            Pfn1->u3.e1.PageLocation = ActiveAndValid;
-
-            /* Bring it back into the free list */
-            MiInsertPageInFreeList(PageFrameIndex);
         }
         else
         {




More information about the Ros-diffs mailing list