diff --git a/kernel/thread.cpp b/kernel/thread.cpp index e89c415a..dcc7ba7a 100644 --- a/kernel/thread.cpp +++ b/kernel/thread.cpp @@ -351,6 +351,7 @@ int sys_exit_thread(int requested_exit_code, extended.unmap_size ) { ScopedLock lock(&process->segment_lock); + extended.unmap_size = Page::AlignDown(extended.unmap_size); Memory::UnmapMemory(process, (uintptr_t) extended.unmap_from, extended.unmap_size); Memory::Flush(); @@ -362,6 +363,7 @@ int sys_exit_thread(int requested_exit_code, extended.tls_unmap_size ) { ScopedLock lock(&process->segment_lock); + extended.tls_unmap_size = Page::AlignDown(extended.tls_unmap_size); Memory::UnmapMemory(process, (uintptr_t) extended.tls_unmap_from, extended.tls_unmap_size); Memory::Flush();