Revert "[NTOS:MM] Do proper checks & acquire proper locks when sweeping user pages"
authorJérôme Gardou <jerome.gardou@reactos.org>
Wed, 4 Aug 2021 21:57:39 +0000 (23:57 +0200)
committerJérôme Gardou <jerome.gardou@reactos.org>
Wed, 4 Aug 2021 21:57:39 +0000 (23:57 +0200)
This reverts commit 7c006df7e0ea1fe3215137199bca7f4a0215a351.
Note to self: This is what happens when you have too many branch and push the wrong one.

ntoskrnl/mm/balance.c

index fe882af..0eec51f 100644 (file)
@@ -213,22 +213,15 @@ MmTrimUserMemory(ULONG Target, ULONG Priority, PULONG NrFreedPages)
 
                 MmLockAddressSpace(&Process->Vm);
 
-                if (!Process->VmDeleted)
+                /* Be sure this is still valid. */
+                PMMPTE Pte = MiAddressToPte(Address);
+                if (Pte->u.Hard.Valid)
                 {
-                    MiLockProcessWorkingSetUnsafe(Process, PsGetCurrentThread());
+                    Accessed = Accessed || Pte->u.Hard.Accessed;
+                    Pte->u.Hard.Accessed = 0;
 
-                    /* Be sure this is still valid. */
-                    if (MmIsAddressValid(Address))
-                    {
-                        PMMPTE Pte = MiAddressToPte(Address);
-                        Accessed = Accessed || Pte->u.Hard.Accessed;
-                        Pte->u.Hard.Accessed = 0;
-
-                        /* There is no need to invalidate, the balancer thread is never on a user process */
-                        //KeInvalidateTlbEntry(Address);
-                    }
-
-                    MiUnlockProcessWorkingSet(Process, PsGetCurrentThread());
+                    /* There is no need to invalidate, the balancer thread is never on a user process */
+                    //KeInvalidateTlbEntry(Address);
                 }
 
                 MmUnlockAddressSpace(&Process->Vm);