diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index 8e19dbd2be..4134eb0cc2 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -47,7 +47,7 @@ enum class NeedsBigProcessLock { #define ENUMERATE_SYSCALLS(S) \ S(accept4, NeedsBigProcessLock::No) \ S(adjtime, NeedsBigProcessLock::No) \ - S(alarm, NeedsBigProcessLock::Yes) \ + S(alarm, NeedsBigProcessLock::No) \ S(allocate_tls, NeedsBigProcessLock::Yes) \ S(anon_create, NeedsBigProcessLock::No) \ S(annotate_mapping, NeedsBigProcessLock::No) \ diff --git a/Kernel/Syscalls/alarm.cpp b/Kernel/Syscalls/alarm.cpp index c73458d482..66ddc5211a 100644 --- a/Kernel/Syscalls/alarm.cpp +++ b/Kernel/Syscalls/alarm.cpp @@ -12,10 +12,10 @@ namespace Kernel { ErrorOr Process::sys$alarm(unsigned seconds) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); + VERIFY_NO_PROCESS_BIG_LOCK(this); TRY(require_promise(Pledge::stdio)); - unsigned previous_alarm_remaining = 0; return m_alarm_timer.with([&](auto& timer) -> ErrorOr { + unsigned previous_alarm_remaining = 0; if (timer) { bool was_in_use = false; if (TimerQueue::the().cancel_timer(*timer, &was_in_use)) {