summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
authorIdan Horowitz <idan.horowitz@gmail.com>2023-04-04 14:11:38 +0300
committerIdan Horowitz <idan.horowitz@gmail.com>2023-04-06 20:30:03 +0300
commit2f79d0e8b9888fc3dd35db119d3a951373a7ac58 (patch)
tree33a9073ce12a9b82f7a6e691fc59a43c235f54fa /Kernel
parent36972141667508d44b0d4e0d2d3b092f4ad404c5 (diff)
downloadserenity-2f79d0e8b9888fc3dd35db119d3a951373a7ac58.zip
Kernel: Mark sys$mprotect as not needing the big lock
All accesses to shared mutable data are already serialized behind the process address space spinlock.
Diffstat (limited to 'Kernel')
-rw-r--r--Kernel/API/Syscall.h2
-rw-r--r--Kernel/Syscalls/mmap.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h
index 2a90d2900d..3b91d57c03 100644
--- a/Kernel/API/Syscall.h
+++ b/Kernel/API/Syscall.h
@@ -127,7 +127,7 @@ enum class NeedsBigProcessLock {
S(mknod, NeedsBigProcessLock::No) \
S(mmap, NeedsBigProcessLock::No) \
S(mount, NeedsBigProcessLock::Yes) \
- S(mprotect, NeedsBigProcessLock::Yes) \
+ S(mprotect, NeedsBigProcessLock::No) \
S(mremap, NeedsBigProcessLock::Yes) \
S(msync, NeedsBigProcessLock::Yes) \
S(munmap, NeedsBigProcessLock::Yes) \
diff --git a/Kernel/Syscalls/mmap.cpp b/Kernel/Syscalls/mmap.cpp
index f55cbc5ecc..31b84f3ccc 100644
--- a/Kernel/Syscalls/mmap.cpp
+++ b/Kernel/Syscalls/mmap.cpp
@@ -268,7 +268,7 @@ ErrorOr<FlatPtr> Process::sys$mmap(Userspace<Syscall::SC_mmap_params const*> use
ErrorOr<FlatPtr> Process::sys$mprotect(Userspace<void*> addr, size_t size, int prot)
{
- VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
+ VERIFY_NO_PROCESS_BIG_LOCK(this);
TRY(require_promise(Pledge::stdio));
if (prot & PROT_EXEC) {