From e219662ce058ff0544a4735dc4b303d48dd7f6d7 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 4 Apr 2023 16:54:21 +0200 Subject: [PATCH] Kernel: Mark sys$setpgid as not needing the big lock This function is already serialized by access to process protected data. --- Kernel/API/Syscall.h | 2 +- Kernel/Syscalls/setpgid.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index 1386b5ae55..6ea599f6bd 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -165,7 +165,7 @@ enum class NeedsBigProcessLock { S(setgroups, NeedsBigProcessLock::No) \ S(sethostname, NeedsBigProcessLock::No) \ S(setkeymap, NeedsBigProcessLock::No) \ - S(setpgid, NeedsBigProcessLock::Yes) \ + S(setpgid, NeedsBigProcessLock::No) \ S(setregid, NeedsBigProcessLock::No) \ S(setresgid, NeedsBigProcessLock::No) \ S(setresuid, NeedsBigProcessLock::No) \ diff --git a/Kernel/Syscalls/setpgid.cpp b/Kernel/Syscalls/setpgid.cpp index 00c0db0faf..7c768f16a1 100644 --- a/Kernel/Syscalls/setpgid.cpp +++ b/Kernel/Syscalls/setpgid.cpp @@ -88,7 +88,7 @@ SessionID Process::get_sid_from_pgid(ProcessGroupID pgid) ErrorOr Process::sys$setpgid(pid_t specified_pid, pid_t specified_pgid) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); + VERIFY_NO_PROCESS_BIG_LOCK(this); TRY(require_promise(Pledge::proc)); ProcessID pid = specified_pid ? ProcessID(specified_pid) : this->pid(); if (specified_pgid < 0) {