diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index 80b5506954..6377d38479 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -43,7 +43,7 @@ enum class NeedsBigProcessLock { // - VERIFY_NO_PROCESS_BIG_LOCK(this) // #define ENUMERATE_SYSCALLS(S) \ - S(yield, NeedsBigProcessLock::Yes) \ + S(yield, NeedsBigProcessLock::No) \ S(open, NeedsBigProcessLock::Yes) \ S(close, NeedsBigProcessLock::Yes) \ S(read, NeedsBigProcessLock::Yes) \ diff --git a/Kernel/Syscalls/sched.cpp b/Kernel/Syscalls/sched.cpp index 9d9310ce96..5c1aa67b79 100644 --- a/Kernel/Syscalls/sched.cpp +++ b/Kernel/Syscalls/sched.cpp @@ -10,9 +10,9 @@ namespace Kernel { KResultOr Process::sys$yield() { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this) + VERIFY_NO_PROCESS_BIG_LOCK(this); REQUIRE_PROMISE(stdio); - Thread::current()->yield_and_release_relock_big_lock(); + Thread::current()->yield_assuming_not_holding_big_lock(); return 0; }