From 24a60c5a1083b29dbb377f617cf14f451602a422 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Sat, 16 Dec 2023 13:30:31 +0200 Subject: [PATCH] Kernel: Mark sys$ioctl as not needing the big process lock This syscall does not access any big process lock protected resources. --- Kernel/API/Syscall.h | 2 +- Kernel/Syscalls/ioctl.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index 223a816c91..c448a0be91 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -113,7 +113,7 @@ enum class NeedsBigProcessLock { S(getuid, NeedsBigProcessLock::No) \ S(inode_watcher_add_watch, NeedsBigProcessLock::No) \ S(inode_watcher_remove_watch, NeedsBigProcessLock::No) \ - S(ioctl, NeedsBigProcessLock::Yes) \ + S(ioctl, NeedsBigProcessLock::No) \ S(join_thread, NeedsBigProcessLock::No) \ S(jail_create, NeedsBigProcessLock::No) \ S(jail_attach, NeedsBigProcessLock::No) \ diff --git a/Kernel/Syscalls/ioctl.cpp b/Kernel/Syscalls/ioctl.cpp index bc258ae919..b793cff364 100644 --- a/Kernel/Syscalls/ioctl.cpp +++ b/Kernel/Syscalls/ioctl.cpp @@ -13,7 +13,7 @@ namespace Kernel { ErrorOr Process::sys$ioctl(int fd, unsigned request, FlatPtr arg) { - VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); + VERIFY_NO_PROCESS_BIG_LOCK(this); auto description = TRY(open_file_description(fd)); if (request == FIONBIO) { description->set_blocking(TRY(copy_typed_from_user(Userspace(arg))) == 0);