summaryrefslogtreecommitdiff
path: root/Kernel/MemoryManager.cpp
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2019-01-16 17:20:58 +0100
committerAndreas Kling <awesomekling@gmail.com>2019-01-16 17:20:58 +0100
commit4fef895edab80cbe2d9f886f5b769973af93a040 (patch)
treea76dfad89256528d9b0eda5887289d787ff65690 /Kernel/MemoryManager.cpp
parentf7ca6d254d452e3524aaeaa1334ac041be3a1279 (diff)
downloadserenity-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.cpp4
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;