summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Kernel/VM/MemoryManager.cpp4
-rw-r--r--Kernel/VirtualAddress.h1
2 files changed, 3 insertions, 2 deletions
diff --git a/Kernel/VM/MemoryManager.cpp b/Kernel/VM/MemoryManager.cpp
index aa3292fdb1..3f1fd93753 100644
--- a/Kernel/VM/MemoryManager.cpp
+++ b/Kernel/VM/MemoryManager.cpp
@@ -74,7 +74,7 @@ void MemoryManager::initialize_paging()
// 3 MB -> 4 MB kmalloc() space.
// 4 MB -> 5 MB Supervisor physical pages (available for allocation!)
// 5 MB -> 0xc0000000 Userspace physical pages (available for allocation!)
- // 0xc0000000-0xffffffff Kernel-only linear address space
+ // 0xc0000000-0xffffffff Kernel-only virtual address space
#ifdef MM_DEBUG
dbgprintf("MM: Quickmap will use %p\n", m_quickmap_addr.get());
@@ -225,7 +225,7 @@ auto MemoryManager::ensure_pte(PageDirectory& page_directory, VirtualAddress vad
void MemoryManager::map_protected(VirtualAddress vaddr, size_t length)
{
InterruptDisabler disabler;
- // FIXME: ASSERT(linearAddress is 4KB aligned);
+ ASSERT(vaddr.is_page_aligned());
for (dword offset = 0; offset < length; offset += PAGE_SIZE) {
auto pte_address = vaddr.offset(offset);
auto pte = ensure_pte(kernel_page_directory(), pte_address);
diff --git a/Kernel/VirtualAddress.h b/Kernel/VirtualAddress.h
index 423987e474..5f9e7d546b 100644
--- a/Kernel/VirtualAddress.h
+++ b/Kernel/VirtualAddress.h
@@ -11,6 +11,7 @@ public:
}
bool is_null() const { return m_address == 0; }
+ bool is_page_aligned() const { return (m_address & 0xfff) == 0; }
VirtualAddress offset(dword o) const { return VirtualAddress(m_address + o); }
dword get() const { return m_address; }