https://git.reactos.org/?p=reactos.git;a=commitdiff;h=82c908195c01ded6e2406…
commit 82c908195c01ded6e2406855f5febf79c9fe9ec1
Author: Jérôme Gardou <jerome.gardou(a)reactos.org>
AuthorDate: Wed Apr 7 23:26:44 2021 +0200
Commit: Jérôme Gardou <jerome.gardou(a)reactos.org>
CommitDate: Wed Apr 7 23:26:44 2021 +0200
Revert "[NTOS:MM] Allow MiMapPageInHyperSpace to be called from
DISPATCH_LEVEL"
This reverts commit 8404d1a6ff897f5210860ba52d70c3a6e86f3fbb.
Not ready for prime time, sorry.
---
ntoskrnl/include/internal/mm.h | 21 ++++++---------------
ntoskrnl/mm/ARM3/hypermap.c | 34 ++++++++--------------------------
2 files changed, 14 insertions(+), 41 deletions(-)
diff --git a/ntoskrnl/include/internal/mm.h b/ntoskrnl/include/internal/mm.h
index 4718fcabcc3..074dbd4e454 100644
--- a/ntoskrnl/include/internal/mm.h
+++ b/ntoskrnl/include/internal/mm.h
@@ -1011,26 +1011,17 @@ MmZeroPageThread(
);
/* hypermap.c *****************************************************************/
-_Acquires_lock_(Process->HyperSpaceLock)
-_When_(OldIrql == 0, _IRQL_requires_(DISPATCH_LEVEL))
-_When_(OldIrql != 0, _IRQL_requires_(PASSIVE_LEVEL))
-_When_(OldIrql != 0, _At_(*OldIrql, IRQL_saves_))
-_When_(OldIrql != 0, _IRQL_raises_(DISPATCH_LEVEL))
PVOID
NTAPI
-MiMapPageInHyperSpace(_In_ PEPROCESS Process,
- _In_ PFN_NUMBER Page,
- _Out_opt_ PKIRQL OldIrql);
+MiMapPageInHyperSpace(IN PEPROCESS Process,
+ IN PFN_NUMBER Page,
+ IN PKIRQL OldIrql);
-_Requires_lock_held_(Process->HyperSpaceLock)
-_Releases_lock_(Process->HyperSpaceLock)
-_IRQL_requires_(DISPATCH_LEVEL)
-_When_(OldIrql != MM_NOIRQL, _At_(OldIrql, _IRQL_restores_))
VOID
NTAPI
-MiUnmapPageInHyperSpace(_In_ PEPROCESS Process,
- _In_ PVOID Address,
- _In_ KIRQL OldIrql);
+MiUnmapPageInHyperSpace(IN PEPROCESS Process,
+ IN PVOID Address,
+ IN KIRQL OldIrql);
PVOID
NTAPI
diff --git a/ntoskrnl/mm/ARM3/hypermap.c b/ntoskrnl/mm/ARM3/hypermap.c
index 88d1a1ea06c..4113814e6a6 100644
--- a/ntoskrnl/mm/ARM3/hypermap.c
+++ b/ntoskrnl/mm/ARM3/hypermap.c
@@ -23,24 +23,16 @@ MMPTE HyperTemplatePte;
/* PRIVATE FUNCTIONS **********************************************************/
-_Acquires_lock_(Process->HyperSpaceLock)
-_When_(OldIrql == 0, _IRQL_requires_(DISPATCH_LEVEL))
-_When_(OldIrql != 0, _IRQL_requires_(PASSIVE_LEVEL))
-_When_(OldIrql != 0, _At_(*OldIrql, _IRQL_saves_))
-_When_(OldIrql != 0, _IRQL_raises_(DISPATCH_LEVEL))
PVOID
NTAPI
-MiMapPageInHyperSpace(_In_ PEPROCESS Process,
- _In_ PFN_NUMBER Page,
- _Out_opt_ PKIRQL OldIrql)
+MiMapPageInHyperSpace(IN PEPROCESS Process,
+ IN PFN_NUMBER Page,
+ IN PKIRQL OldIrql)
{
MMPTE TempPte;
PMMPTE PointerPte;
PFN_NUMBER Offset;
- ASSERT(((OldIrql != NULL) && (KeGetCurrentIrql() == PASSIVE_LEVEL))
- || ((OldIrql == NULL) && (KeGetCurrentIrql() == DISPATCH_LEVEL)));
-
//
// Never accept page 0 or non-physical pages
//
@@ -62,10 +54,7 @@ MiMapPageInHyperSpace(_In_ PEPROCESS Process,
// Acquire the hyperlock
//
ASSERT(Process == PsGetCurrentProcess());
- if (OldIrql != NULL)
- KeAcquireSpinLock(&Process->HyperSpaceLock, OldIrql);
- else
- KeAcquireSpinLockAtDpcLevel(&Process->HyperSpaceLock);
+ KeAcquireSpinLock(&Process->HyperSpaceLock, OldIrql);
//
// Now get the first free PTE
@@ -97,15 +86,11 @@ MiMapPageInHyperSpace(_In_ PEPROCESS Process,
return MiPteToAddress(PointerPte);
}
-_Requires_lock_held_(Process->HyperSpaceLock)
-_Releases_lock_(Process->HyperSpaceLock)
-_IRQL_requires_(DISPATCH_LEVEL)
-_When_(OldIrql != MM_NOIRQL, _At_(OldIrql, _IRQL_restores_))
VOID
NTAPI
-MiUnmapPageInHyperSpace(_In_ PEPROCESS Process,
- _In_ PVOID Address,
- _In_ KIRQL OldIrql)
+MiUnmapPageInHyperSpace(IN PEPROCESS Process,
+ IN PVOID Address,
+ IN KIRQL OldIrql)
{
ASSERT(Process == PsGetCurrentProcess());
@@ -118,10 +103,7 @@ MiUnmapPageInHyperSpace(_In_ PEPROCESS Process,
// Release the hyperlock
//
ASSERT(KeGetCurrentIrql() == DISPATCH_LEVEL);
- if (OldIrql == MM_NOIRQL)
- KeReleaseSpinLockFromDpcLevel(&Process->HyperSpaceLock);
- else
- KeReleaseSpinLock(&Process->HyperSpaceLock, OldIrql);
+ KeReleaseSpinLock(&Process->HyperSpaceLock, OldIrql);
}
PVOID