aboutsummaryrefslogtreecommitdiff
path: root/kernel/mm
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/mm')
-rw-r--r--kernel/mm/virtual_mm/page_table_allocator.cc5
-rw-r--r--kernel/mm/virtual_mm/pages.cc2
-rw-r--r--kernel/mm/virtual_mm/virtual_mm.cc2
3 files changed, 2 insertions, 7 deletions
diff --git a/kernel/mm/virtual_mm/page_table_allocator.cc b/kernel/mm/virtual_mm/page_table_allocator.cc
index 3ec4896..6a2a07e 100644
--- a/kernel/mm/virtual_mm/page_table_allocator.cc
+++ b/kernel/mm/virtual_mm/page_table_allocator.cc
@@ -56,11 +56,6 @@ prepare(void)
/* Initial table */
if (l_heap == NULL)
make_table((uint32_t *) (7 * MiB));
-
- /* If we're gonna run out of space, allocate a new table with the remaining
- * page */
- if (l_table_index == 1023)
- make_table(allocate());
}
uint32_t *
diff --git a/kernel/mm/virtual_mm/pages.cc b/kernel/mm/virtual_mm/pages.cc
index 7778418..3eb403c 100644
--- a/kernel/mm/virtual_mm/pages.cc
+++ b/kernel/mm/virtual_mm/pages.cc
@@ -30,8 +30,6 @@ namespace VirtualMM
void *
alloc_pages(uint32_t n_pages)
{
- PageTableAllocator::prepare();
-
uint32_t starting_address = (uint32_t) find_free_addresses(n_pages);
if (!starting_address)
return NULL;
diff --git a/kernel/mm/virtual_mm/virtual_mm.cc b/kernel/mm/virtual_mm/virtual_mm.cc
index fc6bec6..2055481 100644
--- a/kernel/mm/virtual_mm/virtual_mm.cc
+++ b/kernel/mm/virtual_mm/virtual_mm.cc
@@ -105,6 +105,8 @@ initialize(void)
switch_page_directory(l_page_directory);
enable_paging();
+
+ PageTableAllocator::prepare();
}
uint32_t *