From ce6e93d96b09997b536c0358e32e9a2920f36693 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 16 Aug 2022 20:43:23 +0200 Subject: [PATCH] Kernel: Make sys$socketpair() not take the big lock This system call mainly accesses the file descriptor table, and this is already guarded by MutexProtected. --- Kernel/API/Syscall.h | 2 +- Kernel/Syscalls/socket.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index b15a4d5f4c..af75a4e8c1 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -175,7 +175,7 @@ enum class NeedsBigProcessLock { S(sigsuspend, NeedsBigProcessLock::Yes) \ S(sigtimedwait, NeedsBigProcessLock::Yes) \ S(socket, NeedsBigProcessLock::Yes) \ - S(socketpair, NeedsBigProcessLock::Yes) \ + S(socketpair, NeedsBigProcessLock::No) \ S(stat, NeedsBigProcessLock::No) \ S(statvfs, NeedsBigProcessLock::No) \ S(symlink, NeedsBigProcessLock::No) \ diff --git a/Kernel/Syscalls/socket.cpp b/Kernel/Syscalls/socket.cpp index 1689b04ea1..790ad9c6c3 100644 --- a/Kernel/Syscalls/socket.cpp +++ b/Kernel/Syscalls/socket.cpp @@ -362,7 +362,7 @@ ErrorOr Process::sys$setsockopt(Userspace Process::sys$socketpair(Userspace user_params) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this) + VERIFY_NO_PROCESS_BIG_LOCK(this) auto params = TRY(copy_typed_from_user(user_params)); if (params.domain != AF_LOCAL)