From 9c46fb7337be204e26ba9c1aeb8ac2aace8dff7a Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 5 Nov 2022 15:11:34 +0100 Subject: [PATCH] Kernel: Make sys$msyscall() not take the big lock This function is already serialized by the address space lock. --- Kernel/API/Syscall.h | 2 +- Kernel/Syscalls/mmap.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index 3603f5f87e..bb04e3da3c 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -122,7 +122,7 @@ enum class NeedsBigProcessLock { S(mprotect, NeedsBigProcessLock::Yes) \ S(mremap, NeedsBigProcessLock::Yes) \ S(msync, NeedsBigProcessLock::Yes) \ - S(msyscall, NeedsBigProcessLock::Yes) \ + S(msyscall, NeedsBigProcessLock::No) \ S(munmap, NeedsBigProcessLock::Yes) \ S(open, NeedsBigProcessLock::Yes) \ S(perf_event, NeedsBigProcessLock::Yes) \ diff --git a/Kernel/Syscalls/mmap.cpp b/Kernel/Syscalls/mmap.cpp index 4e2db4bc9f..f31363f893 100644 --- a/Kernel/Syscalls/mmap.cpp +++ b/Kernel/Syscalls/mmap.cpp @@ -563,7 +563,7 @@ ErrorOr Process::sys$allocate_tls(Userspace initial_data, ErrorOr Process::sys$msyscall(Userspace address) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); + VERIFY_NO_PROCESS_BIG_LOCK(this); return address_space().with([&](auto& space) -> ErrorOr { if (space->enforces_syscall_regions())