summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
authorIdan Horowitz <idan.horowitz@gmail.com>2023-04-04 14:14:18 +0300
committerIdan Horowitz <idan.horowitz@gmail.com>2023-04-06 20:30:03 +0300
commitdb10f201c8dfe9bd1f398a24d417480ec3dd9df6 (patch)
tree980aa008d696d141d159f67f74819f4910673016 /Kernel
parentd1082a00b768218f45eb7c1c43e47b5452a5b67f (diff)
downloadserenity-db10f201c8dfe9bd1f398a24d417480ec3dd9df6.zip
Kernel: Mark sys$munmap 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 ab74efa75f..246bcf08ad 100644
--- a/Kernel/API/Syscall.h
+++ b/Kernel/API/Syscall.h
@@ -130,7 +130,7 @@ enum class NeedsBigProcessLock {
S(mprotect, NeedsBigProcessLock::No) \
S(mremap, NeedsBigProcessLock::Yes) \
S(msync, NeedsBigProcessLock::Yes) \
- S(munmap, NeedsBigProcessLock::Yes) \
+ S(munmap, NeedsBigProcessLock::No) \
S(open, NeedsBigProcessLock::No) \
S(perf_event, NeedsBigProcessLock::Yes) \
S(perf_register_string, NeedsBigProcessLock::Yes) \
diff --git a/Kernel/Syscalls/mmap.cpp b/Kernel/Syscalls/mmap.cpp
index 8e66f4ca03..42e56d2edd 100644
--- a/Kernel/Syscalls/mmap.cpp
+++ b/Kernel/Syscalls/mmap.cpp
@@ -470,7 +470,7 @@ ErrorOr<FlatPtr> Process::sys$set_mmap_name(Userspace<Syscall::SC_set_mmap_name_
ErrorOr<FlatPtr> Process::sys$munmap(Userspace<void*> addr, size_t size)
{
- VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
+ VERIFY_NO_PROCESS_BIG_LOCK(this);
TRY(require_promise(Pledge::stdio));
TRY(address_space().with([&](auto& space) {
return space->unmap_mmap_range(addr.vaddr(), size);