From 6c6b778e2e21e1dc1c4b3b5dd4088349824ddc00 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Sat, 17 Jul 2021 02:09:45 +0200 Subject: [PATCH] Kernel: Support 64-bit addresses for kernel thread stacks --- Kernel/Thread.cpp | 2 +- Kernel/Thread.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Kernel/Thread.cpp b/Kernel/Thread.cpp index 183fb82e4a..b3e0b53158 100644 --- a/Kernel/Thread.cpp +++ b/Kernel/Thread.cpp @@ -122,7 +122,7 @@ Thread::Thread(NonnullRefPtr process, NonnullOwnPtr kernel_stac m_regs.cr3 = m_process->space().page_directory().cr3(); m_kernel_stack_base = m_kernel_stack_region->vaddr().get(); - m_kernel_stack_top = m_kernel_stack_region->vaddr().offset(default_kernel_stack_size).get() & 0xfffffff8u; + m_kernel_stack_top = m_kernel_stack_region->vaddr().offset(default_kernel_stack_size).get() & ~(FlatPtr)0x7u; if (m_process->is_kernel_process()) { #if ARCH(I386) diff --git a/Kernel/Thread.h b/Kernel/Thread.h index 1c80ce5e40..a86ea01985 100644 --- a/Kernel/Thread.h +++ b/Kernel/Thread.h @@ -991,8 +991,8 @@ public: void set_ticks_left(u32 t) { m_ticks_left = t; } u32 ticks_left() const { return m_ticks_left; } - u32 kernel_stack_base() const { return m_kernel_stack_base; } - u32 kernel_stack_top() const { return m_kernel_stack_top; } + FlatPtr kernel_stack_base() const { return m_kernel_stack_base; } + FlatPtr kernel_stack_top() const { return m_kernel_stack_top; } void set_state(State, u8 = 0); @@ -1276,8 +1276,8 @@ private: u32 m_ticks_in_kernel { 0 }; u32 m_pending_signals { 0 }; u32 m_signal_mask { 0 }; - u32 m_kernel_stack_base { 0 }; - u32 m_kernel_stack_top { 0 }; + FlatPtr m_kernel_stack_base { 0 }; + FlatPtr m_kernel_stack_top { 0 }; OwnPtr m_kernel_stack_region; VirtualAddress m_thread_specific_data; Optional m_thread_specific_range;