diff options
author | Andreas Kling <awesomekling@gmail.com> | 2019-10-31 13:57:07 +0100 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-10-31 13:57:07 +0100 |
commit | 904c871727cca9fc53f6447228df9d8f8bcb2de8 (patch) | |
tree | b14f4b42ff5ed373bf0cb229759acae2966b44f8 /Kernel/Thread.cpp | |
parent | 6bd1879189c2acefdb91c80400f685ea99e2b46a (diff) | |
download | serenity-904c871727cca9fc53f6447228df9d8f8bcb2de8.zip |
Kernel: Allow userspace stacks to grow up to 4 MB by default
Make userspace stacks lazily allocated and allow them to grow up to
4 megabytes. This avoids a lot of silly crashes we were running into
with software expecting much larger stacks. :^)
Diffstat (limited to 'Kernel/Thread.cpp')
-rw-r--r-- | Kernel/Thread.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Kernel/Thread.cpp b/Kernel/Thread.cpp index 467c4903ca..ca6a3271ae 100644 --- a/Kernel/Thread.cpp +++ b/Kernel/Thread.cpp @@ -502,7 +502,7 @@ void Thread::push_value_on_stack(u32 value) void Thread::make_userspace_stack_for_main_thread(Vector<String> arguments, Vector<String> environment) { - auto* region = m_process.allocate_region(VirtualAddress(), default_userspace_stack_size, "Stack (Main thread)"); + auto* region = m_process.allocate_region(VirtualAddress(), default_userspace_stack_size, "Stack (Main thread)", PROT_READ | PROT_WRITE, false); ASSERT(region); m_tss.esp = region->vaddr().offset(default_userspace_stack_size).get(); @@ -537,7 +537,7 @@ void Thread::make_userspace_stack_for_main_thread(Vector<String> arguments, Vect void Thread::make_userspace_stack_for_secondary_thread(void* argument) { - m_userspace_stack_region = m_process.allocate_region(VirtualAddress(), default_userspace_stack_size, String::format("Stack (Thread %d)", tid())); + m_userspace_stack_region = m_process.allocate_region(VirtualAddress(), default_userspace_stack_size, String::format("Stack (Thread %d)", tid()), PROT_READ | PROT_WRITE, false); ASSERT(m_userspace_stack_region); m_tss.esp = m_userspace_stack_region->vaddr().offset(default_userspace_stack_size).get(); |