diff options
author | Andreas Kling <kling@serenityos.org> | 2023-04-03 16:17:21 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2023-04-04 10:33:42 +0200 |
commit | 374f4aeab9600de3e41aa7957da420e24bf92b6d (patch) | |
tree | fa2f4b036284294175a4944d2f2da953a967795c /Kernel | |
parent | a7212a748846630190ca54080e11e1db73b3a11a (diff) | |
download | serenity-374f4aeab9600de3e41aa7957da420e24bf92b6d.zip |
Kernel: Mark sys$sigreturn as not needing the big lock
This syscall is only concerned with the current thread (except in the
case of a pledge violation, when it will add some details about that
to the process coredump metadata. That stuff is already serialized.)
Diffstat (limited to 'Kernel')
-rw-r--r-- | Kernel/API/Syscall.h | 2 | ||||
-rw-r--r-- | Kernel/Syscalls/sigaction.cpp | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index f35368208a..a0450b7c5c 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -178,7 +178,7 @@ enum class NeedsBigProcessLock { S(sigaltstack, NeedsBigProcessLock::Yes) \ S(sigpending, NeedsBigProcessLock::Yes) \ S(sigprocmask, NeedsBigProcessLock::Yes) \ - S(sigreturn, NeedsBigProcessLock::Yes) \ + S(sigreturn, NeedsBigProcessLock::No) \ S(sigsuspend, NeedsBigProcessLock::Yes) \ S(sigtimedwait, NeedsBigProcessLock::Yes) \ S(socket, NeedsBigProcessLock::No) \ diff --git a/Kernel/Syscalls/sigaction.cpp b/Kernel/Syscalls/sigaction.cpp index 81db82102a..dfa3031d90 100644 --- a/Kernel/Syscalls/sigaction.cpp +++ b/Kernel/Syscalls/sigaction.cpp @@ -75,9 +75,9 @@ ErrorOr<FlatPtr> Process::sys$sigaction(int signum, Userspace<sigaction const*> return 0; } -ErrorOr<FlatPtr> Process::sys$sigreturn([[maybe_unused]] RegisterState& registers) +ErrorOr<FlatPtr> Process::sys$sigreturn(RegisterState& registers) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); + VERIFY_NO_PROCESS_BIG_LOCK(this); TRY(require_promise(Pledge::stdio)); SmapDisabler disabler; |