From f4c49e2f25a33052afd927d04de327dd5122cd5a Mon Sep 17 00:00:00 2001 From: Aiken Harris Date: Mon, 29 Dec 2025 19:14:49 +0100 Subject: [PATCH] Simplify stack page count calculation --- xtoskrnl/mm/kpool.cc | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/xtoskrnl/mm/kpool.cc b/xtoskrnl/mm/kpool.cc index eb7f228..c120231 100644 --- a/xtoskrnl/mm/kpool.cc +++ b/xtoskrnl/mm/kpool.cc @@ -30,7 +30,7 @@ XTSTATUS MM::KernelPool::AllocateKernelStack(OUT PVOID *Stack, IN ULONG StackSize) { - PFN_COUNT StackPtes, StackPages; + PFN_COUNT StackPages; PMMPTE PointerPte, StackPte; MMPTE TempPte, InvalidPte; PFN_NUMBER PageFrameIndex; @@ -40,11 +40,10 @@ MM::KernelPool::AllocateKernelStack(OUT PVOID *Stack, *Stack = NULLPTR; /* Convert the requested stack size into a page count */ - StackPtes = SIZE_TO_PAGES(StackSize); - StackPages = StackPtes; + StackPages = SIZE_TO_PAGES(StackSize); /* Reserve PTEs for the stack pages, plus a guard page */ - StackPte = MM::Pte::ReserveSystemPtes(StackPtes + 1, SystemPteSpace, 0); + StackPte = MM::Pte::ReserveSystemPtes(StackPages + 1, SystemPteSpace, 0); if(!StackPte) { /* Failed to reserve PTEs for the new kernel stack */ @@ -84,10 +83,10 @@ MM::KernelPool::AllocateKernelStack(OUT PVOID *Stack, } /* Zero the newly allocated stack memory, skipping the guard page */ - RTL::Memory::ZeroMemory(MM::Paging::GetPteVirtualAddress(MM::Paging::GetNextPte(StackPte)), MM_PAGE_SIZE * StackPtes); + RTL::Memory::ZeroMemory(MM::Paging::GetPteVirtualAddress(MM::Paging::GetNextPte(StackPte)), MM_PAGE_SIZE * StackPages); /* Return a pointer to the top of the new stack */ - *Stack = MM::Paging::GetPteVirtualAddress(MM::Paging::AdvancePte(StackPte, StackPtes + 1)); + *Stack = MM::Paging::GetPteVirtualAddress(MM::Paging::AdvancePte(StackPte, StackPages + 1)); return STATUS_SUCCESS; }