mirror of
https://github.com/reactos/reactos.git
synced 2025-04-26 08:30:21 +00:00
[NTOS:MM] Do not acquire Pfn lock in MmGetRmapListHead
All callers already hold it
This commit is contained in:
parent
727e73f253
commit
f201b8af78
2 changed files with 8 additions and 11 deletions
|
@ -426,12 +426,10 @@ PMM_RMAP_ENTRY
|
|||
NTAPI
|
||||
MmGetRmapListHeadPage(PFN_NUMBER Pfn)
|
||||
{
|
||||
KIRQL oldIrql;
|
||||
PMM_RMAP_ENTRY ListHead;
|
||||
PMMPFN Pfn1;
|
||||
|
||||
/* Lock PFN database */
|
||||
oldIrql = MiAcquirePfnLock();
|
||||
/* PFN database must be locked */
|
||||
MI_ASSERT_PFN_LOCK_HELD();
|
||||
|
||||
/* Get the entry */
|
||||
Pfn1 = MiGetPfnEntry(Pfn);
|
||||
|
@ -439,19 +437,14 @@ MmGetRmapListHeadPage(PFN_NUMBER Pfn)
|
|||
|
||||
if (!MI_IS_ROS_PFN(Pfn1))
|
||||
{
|
||||
MiReleasePfnLock(oldIrql);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Get the list head */
|
||||
ListHead = Pfn1->RmapListHead;
|
||||
|
||||
/* Should not have an RMAP for a non-active page */
|
||||
ASSERT(MiIsPfnInUse(Pfn1) == TRUE);
|
||||
|
||||
/* Release PFN database and return rmap list head */
|
||||
MiReleasePfnLock(oldIrql);
|
||||
return ListHead;
|
||||
/* Get the list head */
|
||||
return Pfn1->RmapListHead;
|
||||
}
|
||||
|
||||
VOID
|
||||
|
|
|
@ -250,7 +250,11 @@ MmPageOutPhysicalAddress(PFN_NUMBER Page)
|
|||
|
||||
/* We can finally let this page go */
|
||||
MmDeleteRmap(Page, Process, Address);
|
||||
#if DBG
|
||||
OldIrql = MiAcquirePfnLock();
|
||||
ASSERT(MmGetRmapListHeadPage(Page) == NULL);
|
||||
MiReleasePfnLock(OldIrql);
|
||||
#endif
|
||||
MmReleasePageMemoryConsumer(MC_USER, Page);
|
||||
|
||||
if (Address < MmSystemRangeStart)
|
||||
|
|
Loading…
Reference in a new issue