From c2372242b17531224b024916072098a92878d411 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Sat, 9 Apr 2022 23:01:05 +0300 Subject: [PATCH] Kernel: Remove big lock from sys$getsockopt This syscall doesn't access any unprotected shared data. --- 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 7613ef0821..ac18931dbd 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -99,7 +99,7 @@ enum class NeedsBigProcessLock { S(getrusage, NeedsBigProcessLock::Yes) \ S(getsid, NeedsBigProcessLock::Yes) \ S(getsockname, NeedsBigProcessLock::Yes) \ - S(getsockopt, NeedsBigProcessLock::Yes) \ + S(getsockopt, NeedsBigProcessLock::No) \ S(gettid, NeedsBigProcessLock::No) \ S(getuid, NeedsBigProcessLock::Yes) \ S(inode_watcher_add_watch, NeedsBigProcessLock::Yes) \ diff --git a/Kernel/Syscalls/socket.cpp b/Kernel/Syscalls/socket.cpp index 591c21aa4f..8c76e5164a 100644 --- a/Kernel/Syscalls/socket.cpp +++ b/Kernel/Syscalls/socket.cpp @@ -324,7 +324,7 @@ ErrorOr Process::sys$getpeername(Userspace Process::sys$getsockopt(Userspace user_params) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this) + VERIFY_NO_PROCESS_BIG_LOCK(this) auto params = TRY(copy_typed_from_user(user_params)); int sockfd = params.sockfd;