From 2d17fe58bc3bc0fadcb1c2b0884913ebe9ca189a Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 3 Feb 2019 03:04:40 +0100 Subject: [PATCH] Kernel: Remove unnecessary assertion in page_in_from_inode(). Turns out I had confused myself about the situation. Just because a page has been paged in by another process doesn't mean that the *current* process's page directory has the present bit set! D'oh. :^) --- Kernel/MemoryManager.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Kernel/MemoryManager.cpp b/Kernel/MemoryManager.cpp index 4abe285e269..ee56865b645 100644 --- a/Kernel/MemoryManager.cpp +++ b/Kernel/MemoryManager.cpp @@ -304,11 +304,6 @@ bool MemoryManager::page_in_from_inode(Region& region, unsigned page_index_in_re auto& vmo_page = vmo.physical_pages()[region.first_page_index() + page_index_in_region]; - if (!vmo_page.is_null()) { - dbgprintf("MM: Redundant page_in_from_inode in %s(%u), inode=%u, [%u]\n", current->name().characters(), current->pid(), region.vmo().inode()->identifier().index(), page_index_in_region); - ASSERT_NOT_REACHED(); - } - bool interrupts_were_enabled = are_interrupts_enabled(); if (!interrupts_were_enabled) @@ -320,7 +315,7 @@ bool MemoryManager::page_in_from_inode(Region& region, unsigned page_index_in_re cli(); if (!vmo_page.is_null()) { - kprintf("MM: page_in_from_inode was served by someone else while lock was held\n"); + kprintf("MM: page_in_from_inode() but page already present. Fine with me!\n"); remap_region_page(region, page_index_in_region, true); return true; }