From e529042895f84d446bd4d5868d27d4ced1fc9e5d Mon Sep 17 00:00:00 2001 From: Drew Stratford Date: Fri, 6 Sep 2019 22:50:12 +1200 Subject: [PATCH] Kernel: Remove reduntant kernel/user signal stacks. Due to the changes in signal handling m_kernel_stack_for_signal_handler_region and m_signal_stack_user_region are no longer necessary, and so, have been removed. I've also removed the similarly reduntant m_tss_to_resume_kernel. --- Kernel/Arch/i386/CPU.cpp | 2 +- Kernel/Process.cpp | 2 -- Kernel/Thread.cpp | 3 --- Kernel/Thread.h | 4 ---- 4 files changed, 1 insertion(+), 10 deletions(-) diff --git a/Kernel/Arch/i386/CPU.cpp b/Kernel/Arch/i386/CPU.cpp index 3e40f85fd6..099b2092fb 100644 --- a/Kernel/Arch/i386/CPU.cpp +++ b/Kernel/Arch/i386/CPU.cpp @@ -139,7 +139,7 @@ static void dump(const DumpType& regs) kprintf(" pc=%04x:%08x ds=%04x es=%04x fs=%04x gs=%04x\n", regs.cs, regs.eip, regs.ds, regs.es, regs.fs, regs.gs); kprintf(" stk=%04x:%08x\n", ss, esp); if (current) - kprintf("kstk=%04x:%08x, base=%08x, sigbase=%08x\n", current->tss().ss0, current->tss().esp0, current->kernel_stack_base(), current->kernel_stack_for_signal_handler_base()); + kprintf("kstk=%04x:%08x, base=%08x\n", current->tss().ss0, current->tss().esp0, current->kernel_stack_base()); kprintf("eax=%08x ebx=%08x ecx=%08x edx=%08x\n", regs.eax, regs.ebx, regs.ecx, regs.edx); kprintf("ebp=%08x esp=%08x esi=%08x edi=%08x\n", regs.ebp, esp, regs.esi, regs.edi); diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index ec2fdb064f..5bfa46f722 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -473,8 +473,6 @@ int Process::do_exec(String path, Vector arguments, Vector envir if (metadata.is_setgid()) m_egid = metadata.gid; - current->m_kernel_stack_for_signal_handler_region = nullptr; - current->m_signal_stack_user_region = nullptr; current->set_default_signal_dispositions(); current->m_signal_mask = 0; current->m_pending_signals = 0; diff --git a/Kernel/Thread.cpp b/Kernel/Thread.cpp index 0de2538af8..e0a22ce71f 100644 --- a/Kernel/Thread.cpp +++ b/Kernel/Thread.cpp @@ -124,9 +124,6 @@ Thread::~Thread() if (m_kernel_stack_region) m_process.deallocate_region(*m_kernel_stack_region); - - if (m_kernel_stack_for_signal_handler_region) - m_process.deallocate_region(*m_kernel_stack_for_signal_handler_region); } void Thread::unblock() diff --git a/Kernel/Thread.h b/Kernel/Thread.h index 7bf6e173d2..57f2732548 100644 --- a/Kernel/Thread.h +++ b/Kernel/Thread.h @@ -281,7 +281,6 @@ public: u32 kernel_stack_base() const { return m_kernel_stack_base; } u32 kernel_stack_top() const { return m_kernel_stack_top; } - u32 kernel_stack_for_signal_handler_base() const { return m_kernel_stack_for_signal_handler_region ? m_kernel_stack_for_signal_handler_region->vaddr().get() : 0; } void set_selector(u16 s) { m_far_ptr.selector = s; } void set_state(State); @@ -332,7 +331,6 @@ private: Process& m_process; int m_tid { -1 }; TSS32 m_tss; - OwnPtr m_tss_to_resume_kernel; FarPtr m_far_ptr; u32 m_ticks { 0 }; u32 m_ticks_left { 0 }; @@ -343,10 +341,8 @@ private: u32 m_kernel_stack_top { 0 }; RefPtr m_userspace_stack_region; RefPtr m_kernel_stack_region; - RefPtr m_kernel_stack_for_signal_handler_region; VirtualAddress m_thread_specific_data; SignalActionData m_signal_action_data[32]; - Region* m_signal_stack_user_region { nullptr }; IntrusiveList m_blockers; FPUState* m_fpu_state { nullptr }; State m_state { Invalid };