https://git.reactos.org/?p=reactos.git;a=commitdiff;h=cc99b9d96e22934723b67f5ad4c8d3bcc60aeeff
commit cc99b9d96e22934723b67f5ad4c8d3bcc60aeeff Author: Tuur Martens <[email protected]> AuthorDate: Mon May 23 21:08:17 2022 +0200 Commit: George Bișoc <[email protected]> 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; + } }
