diff options
author | Andreas Kling <awesomekling@gmail.com> | 2019-11-03 23:54:35 +0100 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-11-03 23:54:35 +0100 |
commit | 98b328754ec8bd29bd495c6567343e2422a33fa5 (patch) | |
tree | cf2daf1e4e4b2fb7934557145ab0e746497fb106 /Kernel/VM | |
parent | 5b7f8634e3f62643fdfdb879f9fb3dc9163d40fe (diff) | |
download | serenity-98b328754ec8bd29bd495c6567343e2422a33fa5.zip |
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.
Diffstat (limited to 'Kernel/VM')
-rw-r--r-- | Kernel/VM/MemoryManager.cpp | 3 |
1 files changed, 1 insertions, 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()); |