[NTOS/MM]
[reactos.git] / reactos / ntoskrnl / mm / ARM3 / pfnlist.c
index 6977f0e..8fc607c 100644 (file)
@@ -64,7 +64,6 @@ ULONG MI_PFN_CURRENT_USAGE;
 CHAR MI_PFN_CURRENT_PROCESS_NAME[16] = "None yet";
 
 /* FUNCTIONS ******************************************************************/
-
 static
 VOID
 MiIncrementAvailablePages(
@@ -597,6 +596,9 @@ MiRemoveZeroPage(IN ULONG Color)
     return PageIndex;
 }
 
+/* HACK for keeping legacy Mm alive */
+extern BOOLEAN MmRosNotifyAvailablePage(PFN_NUMBER PageFrameIndex);
+
 VOID
 NTAPI
 MiInsertPageInFreeList(IN PFN_NUMBER PageFrameIndex)
@@ -624,6 +626,13 @@ MiInsertPageInFreeList(IN PFN_NUMBER PageFrameIndex)
     ASSERT(Pfn1->u4.VerifierAllocation == 0);
     ASSERT(Pfn1->u3.e2.ReferenceCount == 0);
 
+    /* HACK HACK HACK : Feed the page to legacy Mm */
+    if (MmRosNotifyAvailablePage(PageFrameIndex))
+    {
+        DPRINT1("Legacy Mm eating ARM3 page!.\n");
+        return;
+    }
+
     /* Get the free page list and increment its count */
     ListHead = &MmFreePageListHead;
     ASSERT_LIST_INVARIANT(ListHead);
@@ -695,7 +704,6 @@ MiInsertPageInFreeList(IN PFN_NUMBER PageFrameIndex)
     if ((ListHead->Total >= 8) && !(MmZeroingPageThreadActive))
     {
         /* Set the event */
-        MmZeroingPageThreadActive = TRUE;
         KeSetEvent(&MmZeroingPageEvent, IO_NO_INCREMENT, FALSE);
     }