diff --git a/Kernel/Syscall.cpp b/Kernel/Syscall.cpp index ae0bf894cf7..563fb53ad69 100644 --- a/Kernel/Syscall.cpp +++ b/Kernel/Syscall.cpp @@ -125,15 +125,7 @@ int handle(RegisterState& regs, u32 function, u32 arg1, u32 arg2, u32 arg3) void syscall_handler(TrapFrame* trap) { auto& regs = *trap->regs; - // Special handling of the "gettid" syscall since it's extremely hot. - // FIXME: Remove this hack once userspace locks stop calling it so damn much. auto current_thread = Thread::current(); - auto& process = current_thread->process(); - if (regs.eax == SC_gettid) { - regs.eax = process.sys$gettid(); - current_thread->did_syscall(); - return; - } if (current_thread->tracer() && current_thread->tracer()->is_tracing_syscalls()) { current_thread->tracer()->set_trace_syscalls(false); @@ -149,6 +141,7 @@ void syscall_handler(TrapFrame* trap) asm volatile("" : "=m"(*ptr)); + auto& process = current_thread->process(); if (!MM.validate_user_stack(process, VirtualAddress(regs.userspace_esp))) { dbg() << "Invalid stack pointer: " << String::format("%p", regs.userspace_esp); handle_crash(regs, "Bad stack on syscall entry", SIGSTKFLT);