From cc558d95f0c5fc673b7cc4cf1caa3b279211cf66 Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Fri, 3 Feb 2023 17:49:06 +0000 Subject: [PATCH] Kernel: Remove pledge syscall from the big lock This already does all its dangerous work inside `with_mutable_protected_data()`. --- Kernel/API/Syscall.h | 2 +- Kernel/Syscalls/pledge.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index 5dcf3b9322..22dd954d53 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -133,7 +133,7 @@ enum class NeedsBigProcessLock { S(perf_event, NeedsBigProcessLock::Yes) \ S(perf_register_string, NeedsBigProcessLock::Yes) \ S(pipe, NeedsBigProcessLock::No) \ - S(pledge, NeedsBigProcessLock::Yes) \ + S(pledge, NeedsBigProcessLock::No) \ S(poll, NeedsBigProcessLock::Yes) \ S(posix_fallocate, NeedsBigProcessLock::No) \ S(prctl, NeedsBigProcessLock::Yes) \ diff --git a/Kernel/Syscalls/pledge.cpp b/Kernel/Syscalls/pledge.cpp index 39c3b86aee..72079ae515 100644 --- a/Kernel/Syscalls/pledge.cpp +++ b/Kernel/Syscalls/pledge.cpp @@ -11,7 +11,7 @@ namespace Kernel { ErrorOr Process::sys$pledge(Userspace user_params) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); + VERIFY_NO_PROCESS_BIG_LOCK(this); auto params = TRY(copy_typed_from_user(user_params)); if (params.promises.length > 1024 || params.execpromises.length > 1024)