Kernel: Set CS selector when initializing thread context on x86_64

These are not technically required, since the Thread constructor
already sets these, but they are set on i686, so let's try and keep
consistent behaviour between the different archs.
This commit is contained in:
Idan Horowitz 2022-02-26 22:47:12 +02:00
parent 76157594a9
commit 011bd06053
Notes: sideshowbarker 2024-07-17 18:11:13 +09:00
2 changed files with 2 additions and 1 deletions

View file

@ -160,6 +160,7 @@ FlatPtr Processor::init_context(Thread& thread, bool leave_crit)
regs.rip = FlatPtr(&thread_context_first_enter);
regs.rsp0 = kernel_stack_top;
regs.rsp = stack_top;
regs.cs = GDT_SELECTOR_CODE0;
return stack_top;
}

View file

@ -608,8 +608,8 @@ ErrorOr<void> Process::do_exec(NonnullRefPtr<OpenFileDescription> main_program_d
new_main_thread->reset_fpu_state();
auto& regs = new_main_thread->m_regs;
#if ARCH(I386)
regs.cs = GDT_SELECTOR_CODE3 | 3;
#if ARCH(I386)
regs.ds = GDT_SELECTOR_DATA3 | 3;
regs.es = GDT_SELECTOR_DATA3 | 3;
regs.ss = GDT_SELECTOR_DATA3 | 3;