From 12b612ab149282143c8e540ffdb02d6900a00d5d Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 4 Apr 2022 00:39:43 +0200 Subject: [PATCH] Kernel: Mark sys$adjtime() as not needing the big lock This syscall works on global kernel state and so doesn't need protection from threads in the same process. --- Kernel/API/Syscall.h | 2 +- Kernel/Syscalls/clock.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index a15c46648e..2408bea4f5 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -42,7 +42,7 @@ enum class NeedsBigProcessLock { #define ENUMERATE_SYSCALLS(S) \ S(accept4, NeedsBigProcessLock::Yes) \ S(access, NeedsBigProcessLock::Yes) \ - S(adjtime, NeedsBigProcessLock::Yes) \ + S(adjtime, NeedsBigProcessLock::No) \ S(alarm, NeedsBigProcessLock::Yes) \ S(allocate_tls, NeedsBigProcessLock::Yes) \ S(anon_create, NeedsBigProcessLock::No) \ diff --git a/Kernel/Syscalls/clock.cpp b/Kernel/Syscalls/clock.cpp index 74af99263f..f3119c137e 100644 --- a/Kernel/Syscalls/clock.cpp +++ b/Kernel/Syscalls/clock.cpp @@ -93,7 +93,7 @@ ErrorOr Process::sys$clock_nanosleep(Userspace Process::sys$adjtime(Userspace user_delta, Userspace user_old_delta) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); + VERIFY_NO_PROCESS_BIG_LOCK(this); if (user_old_delta) { timespec old_delta_ts = TimeManagement::the().remaining_epoch_time_adjustment(); timeval old_delta;