Browse Source

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.
Drew Stratford 5 years ago
parent
commit
e529042895
4 changed files with 1 additions and 10 deletions
  1. 1 1
      Kernel/Arch/i386/CPU.cpp
  2. 0 2
      Kernel/Process.cpp
  3. 0 3
      Kernel/Thread.cpp
  4. 0 4
      Kernel/Thread.h

+ 1 - 1
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);
 

+ 0 - 2
Kernel/Process.cpp

@@ -473,8 +473,6 @@ int Process::do_exec(String path, Vector<String> arguments, Vector<String> 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;

+ 0 - 3
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()

+ 0 - 4
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<TSS32> 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<Region> m_userspace_stack_region;
     RefPtr<Region> m_kernel_stack_region;
-    RefPtr<Region> 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<Blocker, &Blocker::m_blocker_list_node> m_blockers;
     FPUState* m_fpu_state { nullptr };
     State m_state { Invalid };