From 98b328754ec8bd29bd495c6567343e2422a33fa5 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 3 Nov 2019 23:54:35 +0100 Subject: [PATCH] Kernel: Fix bad setup of CoW faults for offset regions Regions with an offset into their VMObject were incorrectly adding the page offset when indexing into the CoW bitmap. --- Kernel/VM/MemoryManager.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Kernel/VM/MemoryManager.cpp b/Kernel/VM/MemoryManager.cpp index 1d7f87e8c3..f52e0c7ba5 100644 --- a/Kernel/VM/MemoryManager.cpp +++ b/Kernel/VM/MemoryManager.cpp @@ -697,8 +697,7 @@ void MemoryManager::map_region_at_address(PageDirectory& page_directory, Region& if (physical_page) { pte.set_physical_page_base(physical_page->paddr().get()); pte.set_present(true); // FIXME: Maybe we should use the is_readable flag here? - // FIXME: It seems wrong that the *region* cow map is essentially using *VMO* relative indices. - if (region.should_cow(region.first_page_index() + i)) + if (region.should_cow(i)) pte.set_writable(false); else pte.set_writable(region.is_writable());