https://git.reactos.org/?p=reactos.git;a=commitdiff;h=cc99b9d96e22934723b67…
commit cc99b9d96e22934723b67f5ad4c8d3bcc60aeeff
Author: Tuur Martens <tuurmartens4(a)gmail.com>
AuthorDate: Mon May 23 21:08:17 2022 +0200
Commit: George Bișoc <george.bisoc(a)reactos.org>
CommitDate: Sun May 29 13:28:27 2022 +0200
[NTOS:MM] Fix MiInsertSharedUserPageVad preventing boot on x64
Fix MiInsertSharedUserPageVad to not charge the system process pool quota.
Even though PsChargeProcessNonPagedPoolQuota itself checks if the process specified is
the system process, this doesn't work here as we're too early into boot for the
kernel to know what the system process is.
---
ntoskrnl/mm/ARM3/procsup.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/ntoskrnl/mm/ARM3/procsup.c b/ntoskrnl/mm/ARM3/procsup.c
index 2ddd91c5ca2..4111d711e3c 100644
--- a/ntoskrnl/mm/ARM3/procsup.c
+++ b/ntoskrnl/mm/ARM3/procsup.c
@@ -901,12 +901,15 @@ MiInsertSharedUserPageVad(
return Status;
}
- Status = PsChargeProcessNonPagedPoolQuota(Process, sizeof(MMVAD_LONG));
- if (!NT_SUCCESS(Status))
+ if (Process->QuotaBlock != NULL)
{
- DPRINT1("Ran out of quota.\n");
- ExFreePoolWithTag(Vad, 'ldaV');
- return Status;
+ Status = PsChargeProcessNonPagedPoolQuota(Process, sizeof(MMVAD_LONG));
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("Ran out of quota.\n");
+ ExFreePoolWithTag(Vad, 'ldaV');
+ return Status;
+ }
}