https://git.reactos.org/?p=reactos.git;a=commitdiff;h=cc99b9d96e22934723b67f...
commit cc99b9d96e22934723b67f5ad4c8d3bcc60aeeff Author: Tuur Martens tuurmartens4@gmail.com AuthorDate: Mon May 23 21:08:17 2022 +0200 Commit: George Bișoc george.bisoc@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; + } }