diff --git a/Kernel/Syscalls/waitid.cpp b/Kernel/Syscalls/waitid.cpp index eeb471f947..d9dc09f509 100644 --- a/Kernel/Syscalls/waitid.cpp +++ b/Kernel/Syscalls/waitid.cpp @@ -31,15 +31,6 @@ namespace Kernel { KResultOr Process::do_waitid(idtype_t idtype, int id, int options) { - switch (idtype) { - case P_ALL: - case P_PID: - case P_PGID: - break; - default: - return EINVAL; - } - KResultOr result = KResult(KSuccess); if (Thread::current()->block({}, options, idtype, id, result).was_interrupted()) return EINTR; @@ -55,6 +46,15 @@ pid_t Process::sys$waitid(Userspace user_param if (!copy_from_user(¶ms, user_params)) return -EFAULT; + switch (params.idtype) { + case P_ALL: + case P_PID: + case P_PGID: + break; + default: + return EINVAL; + } + dbgln_if(PROCESS_DEBUG, "sys$waitid({}, {}, {}, {})", params.idtype, params.id, params.infop, params.options); auto siginfo_or_error = do_waitid(static_cast(params.idtype), params.id, params.options);