diff options
author | Andreas Kling <awesomekling@gmail.com> | 2019-01-16 17:20:58 +0100 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-01-16 17:20:58 +0100 |
commit | 4fef895edab80cbe2d9f886f5b769973af93a040 (patch) | |
tree | a76dfad89256528d9b0eda5887289d787ff65690 /Kernel/MemoryManager.cpp | |
parent | f7ca6d254d452e3524aaeaa1334ac041be3a1279 (diff) | |
download | serenity-4fef895edab80cbe2d9f886f5b769973af93a040.zip |
Rework WindowServer to use select() in its main event loop.
The system can finally idle without burning CPU. :^)
There are some issues with scheduling making the mouse cursor sloppy
and unresponsive that need to be dealt with.
Diffstat (limited to 'Kernel/MemoryManager.cpp')
-rw-r--r-- | Kernel/MemoryManager.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Kernel/MemoryManager.cpp b/Kernel/MemoryManager.cpp index 37cb27619a..6618457f28 100644 --- a/Kernel/MemoryManager.cpp +++ b/Kernel/MemoryManager.cpp @@ -537,7 +537,7 @@ bool MemoryManager::validate_user_read(const Process& process, LinearAddress lad auto pte = PageTableEntry(&pde.pageTableBase()[pageTableIndex]); if (!pte.is_present()) return false; - if (!pte.is_user_allowed()) + if (process.isRing3() && !pte.is_user_allowed()) return false; return true; } @@ -552,7 +552,7 @@ bool MemoryManager::validate_user_write(const Process& process, LinearAddress la auto pte = PageTableEntry(&pde.pageTableBase()[pageTableIndex]); if (!pte.is_present()) return false; - if (!pte.is_user_allowed()) + if (process.isRing3() && !pte.is_user_allowed()) return false; if (!pte.is_writable()) return false; |