1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-23 10:17:41 +00:00

Kernel: Disable big process lock for sys$getkeymap

This syscall only reads non process-related global values, and as such
doesn't need to hold the big lock.
This commit is contained in:
Idan Horowitz 2021-08-06 14:47:26 +03:00 committed by Andreas Kling
parent 48325e2959
commit 1a08694dfc
2 changed files with 2 additions and 1 deletions

View file

@ -155,7 +155,7 @@ enum class NeedsBigProcessLock {
S(get_process_name, NeedsBigProcessLock::Yes) \ S(get_process_name, NeedsBigProcessLock::Yes) \
S(fchdir, NeedsBigProcessLock::Yes) \ S(fchdir, NeedsBigProcessLock::Yes) \
S(getrandom, NeedsBigProcessLock::No) \ S(getrandom, NeedsBigProcessLock::No) \
S(getkeymap, NeedsBigProcessLock::Yes) \ S(getkeymap, NeedsBigProcessLock::No) \
S(setkeymap, NeedsBigProcessLock::Yes) \ S(setkeymap, NeedsBigProcessLock::Yes) \
S(clock_gettime, NeedsBigProcessLock::Yes) \ S(clock_gettime, NeedsBigProcessLock::Yes) \
S(clock_settime, NeedsBigProcessLock::Yes) \ S(clock_settime, NeedsBigProcessLock::Yes) \

View file

@ -48,6 +48,7 @@ KResultOr<FlatPtr> Process::sys$setkeymap(Userspace<const Syscall::SC_setkeymap_
KResultOr<FlatPtr> Process::sys$getkeymap(Userspace<const Syscall::SC_getkeymap_params*> user_params) KResultOr<FlatPtr> Process::sys$getkeymap(Userspace<const Syscall::SC_getkeymap_params*> user_params)
{ {
VERIFY_NO_PROCESS_BIG_LOCK(this);
REQUIRE_PROMISE(getkeymap); REQUIRE_PROMISE(getkeymap);
Syscall::SC_getkeymap_params params; Syscall::SC_getkeymap_params params;