From 7c209f0f0f6ae6ac8a085b6d88c4a3932569d969 Mon Sep 17 00:00:00 2001 From: Stefan Ginsberg Date: Thu, 3 Sep 2015 20:04:28 +0000 Subject: [PATCH] - Now that we actually take the trouble to set up MmLargeStackSize properly, use it! Also make it possible to set via the registry by adding it to the control vector table. svn path=/trunk/; revision=68964 --- reactos/ntoskrnl/config/cmdata.c | 2 +- reactos/ntoskrnl/mm/ARM3/procsup.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/reactos/ntoskrnl/config/cmdata.c b/reactos/ntoskrnl/config/cmdata.c index dee4ac23474..9eeede73556 100644 --- a/reactos/ntoskrnl/config/cmdata.c +++ b/reactos/ntoskrnl/config/cmdata.c @@ -341,7 +341,7 @@ INIT_FUNCTION CM_SYSTEM_CONTROL_VECTOR CmControlVector[] = { L"Session Manager\\Memory Management", L"LargeStackSize", - &DummyData, + &MmLargeStackSize, NULL, NULL }, diff --git a/reactos/ntoskrnl/mm/ARM3/procsup.c b/reactos/ntoskrnl/mm/ARM3/procsup.c index 961a00da91a..6774c515467 100644 --- a/reactos/ntoskrnl/mm/ARM3/procsup.c +++ b/reactos/ntoskrnl/mm/ARM3/procsup.c @@ -200,7 +200,7 @@ MmDeleteKernelStack(IN PVOID StackBase, // Calculate pages used // StackPages = BYTES_TO_PAGES(GuiStack ? - KERNEL_LARGE_STACK_SIZE : KERNEL_STACK_SIZE); + MmLargeStackSize : KERNEL_STACK_SIZE); /* Acquire the PFN lock */ OldIrql = KeAcquireQueuedSpinLock(LockQueuePfnLock); @@ -275,7 +275,7 @@ MmCreateKernelStack(IN BOOLEAN GuiStack, // // We'll allocate 64KB stack, but only commit 12K // - StackPtes = BYTES_TO_PAGES(KERNEL_LARGE_STACK_SIZE); + StackPtes = BYTES_TO_PAGES(MmLargeStackSize); StackPages = BYTES_TO_PAGES(KERNEL_LARGE_STACK_COMMIT); } else @@ -317,7 +317,7 @@ MmCreateKernelStack(IN BOOLEAN GuiStack, // Select the right PTE address where we actually start committing pages // PointerPte = StackPte; - if (GuiStack) PointerPte += BYTES_TO_PAGES(KERNEL_LARGE_STACK_SIZE - + if (GuiStack) PointerPte += BYTES_TO_PAGES(MmLargeStackSize - KERNEL_LARGE_STACK_COMMIT); @@ -382,7 +382,7 @@ MmGrowKernelStackEx(IN PVOID StackPointer, // Make sure the stack did not overflow // ASSERT(((ULONG_PTR)Thread->StackBase - (ULONG_PTR)Thread->StackLimit) <= - (KERNEL_LARGE_STACK_SIZE + PAGE_SIZE)); + (MmLargeStackSize + PAGE_SIZE)); // // Get the current stack limit @@ -400,7 +400,7 @@ MmGrowKernelStackEx(IN PVOID StackPointer, // Now make sure you're not going past the reserved space // LastPte = MiAddressToPte((PVOID)((ULONG_PTR)Thread->StackBase - - KERNEL_LARGE_STACK_SIZE)); + MmLargeStackSize)); if (NewLimitPte < LastPte) { //