mirror of
https://github.com/SerenityOS/serenity
synced 2024-09-20 00:12:20 +00:00
Kernel: Mark sys$sched_{set,get}param() as not needing the big lock
Both of these syscalls take the scheduler lock while accessing the thread priority, so there's no reliance on the process big lock.
This commit is contained in:
parent
9250ac0c24
commit
55814f6e0e
|
@ -144,8 +144,8 @@ enum class NeedsBigProcessLock {
|
|||
S(recvmsg, NeedsBigProcessLock::Yes) \
|
||||
S(rename, NeedsBigProcessLock::Yes) \
|
||||
S(rmdir, NeedsBigProcessLock::Yes) \
|
||||
S(sched_getparam, NeedsBigProcessLock::Yes) \
|
||||
S(sched_setparam, NeedsBigProcessLock::Yes) \
|
||||
S(sched_getparam, NeedsBigProcessLock::No) \
|
||||
S(sched_setparam, NeedsBigProcessLock::No) \
|
||||
S(sendfd, NeedsBigProcessLock::No) \
|
||||
S(sendmsg, NeedsBigProcessLock::Yes) \
|
||||
S(set_coredump_metadata, NeedsBigProcessLock::Yes) \
|
||||
|
|
|
@ -19,7 +19,7 @@ ErrorOr<FlatPtr> Process::sys$yield()
|
|||
|
||||
ErrorOr<FlatPtr> Process::sys$sched_setparam(int pid, Userspace<const struct sched_param*> user_param)
|
||||
{
|
||||
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this)
|
||||
VERIFY_NO_PROCESS_BIG_LOCK(this)
|
||||
TRY(require_promise(Pledge::proc));
|
||||
auto param = TRY(copy_typed_from_user(user_param));
|
||||
|
||||
|
@ -43,7 +43,7 @@ ErrorOr<FlatPtr> Process::sys$sched_setparam(int pid, Userspace<const struct sch
|
|||
|
||||
ErrorOr<FlatPtr> Process::sys$sched_getparam(pid_t pid, Userspace<struct sched_param*> user_param)
|
||||
{
|
||||
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this)
|
||||
VERIFY_NO_PROCESS_BIG_LOCK(this)
|
||||
TRY(require_promise(Pledge::proc));
|
||||
int priority;
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue