ladybird/Kernel/VM
Andreas Kling 50472fd69f Kernel: Don't try to return a committed page that we don't have
When we get a COW fault and discover that whoever we were COW'ing
together with has either COW'ed that page on their end (or they have
unmapped/exited) we simplify life for ourselves by clearing the COW
bit and keeping the page we already have. (No need to COW if the page
is not shared!)

The act of doing this does not return a committed page to the pool.
In fact, that committed page we had reserved for this purpose was used
up (allocated) by our COW buddy when they COW'ed the page.

This fixes a kernel panic when running TestLibCMkTemp. :^)
2021-07-26 00:39:10 +02:00
..
AllocationStrategy.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
AnonymousVMObject.cpp Kernel: Don't try to return a committed page that we don't have 2021-07-26 00:39:10 +02:00
AnonymousVMObject.h Kernel: Don't try to return a committed page that we don't have 2021-07-26 00:39:10 +02:00
InodeVMObject.cpp Kernel: Simplify VMObject locking & page fault handlers 2021-07-23 03:24:44 +02:00
InodeVMObject.h Kernel: Simplify VMObject locking & page fault handlers 2021-07-23 03:24:44 +02:00
MappedROM.h Kernel: Pull apart CPU.h 2021-06-24 00:38:23 +02:00
MemoryManager.cpp Kernel: Remove ContiguousVMObject, let AnonymousVMObject do the job 2021-07-25 18:44:47 +02:00
MemoryManager.h Kernel: Simplify VMObject locking & page fault handlers 2021-07-23 03:24:44 +02:00
PageDirectory.cpp Kernel: Fix the variable declaration for some linker script symbols 2021-07-22 22:27:11 +02:00
PageDirectory.h Kernel: Fix 64-bit address truncation in MemoryManager::ensure_pte() 2021-07-18 17:31:13 +02:00
PageFaultResponse.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
PhysicalPage.cpp Kernel: Convert the PhysicalPage bool parameter to an enum 2021-07-17 18:38:28 +04:30
PhysicalPage.h Kernel: Convert the PhysicalPage bool parameter to an enum 2021-07-17 18:38:28 +04:30
PhysicalRegion.cpp Kernel: Remove debug spam when PhysicalRegion::take_free_page() fails 2021-07-14 01:37:31 +02:00
PhysicalRegion.h Kernel: Fix logic error in PhysicalRegion::contains() 2021-07-14 01:37:19 +02:00
PhysicalZone.cpp Kernel: Cut allocation size for physical buddy bitmaps in half 2021-07-13 23:47:49 +02:00
PhysicalZone.h Kernel: Remove some friendships and make some classes non-copy/moveable 2021-07-13 23:19:00 +02:00
PrivateInodeVMObject.cpp Kernel: Convert VMObject & subclasses to east-const style 2021-07-22 09:17:02 +02:00
PrivateInodeVMObject.h Kernel: Convert VMObject & subclasses to east-const style 2021-07-22 09:17:02 +02:00
ProcessPagingScope.cpp Kernel: Remove unused header includes in VM subtree 2021-07-11 21:37:38 +02:00
ProcessPagingScope.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Range.cpp Kernel: Move special sections into Sections.h 2021-06-24 00:38:23 +02:00
Range.h Everywhere: Prefix hexadecimal numbers with 0x 2021-07-22 08:57:01 +02:00
RangeAllocator.cpp Kernel: Make allocate_randomized() work for 64-bit addresses 2021-07-18 17:31:13 +02:00
RangeAllocator.h Kernel: Declare VM/RangeAllocator trivial destructor as default 2021-07-17 13:02:09 +02:00
Region.cpp Kernel: Remove unnecessary counting of VMObject-attached Regions 2021-07-25 17:28:06 +02:00
Region.h Kernel: Remove unused enum Region::SetVolatileError 2021-07-25 17:28:06 +02:00
RingBuffer.cpp Kernel: Add support for reading from VirtIOConsole 2021-07-09 13:19:21 +04:30
RingBuffer.h Kernel: Support multiport for VirtIOConsole 2021-07-09 13:19:21 +04:30
ScatterGatherList.cpp Kernel: Consolidate API for creating AnonymousVMObject with given pages 2021-07-22 09:17:02 +02:00
ScatterGatherList.h Kernel: Consolidate API for creating AnonymousVMObject with given pages 2021-07-22 09:17:02 +02:00
SharedInodeVMObject.cpp Kernel: Convert VMObject & subclasses to east-const style 2021-07-22 09:17:02 +02:00
SharedInodeVMObject.h Kernel: Convert VMObject & subclasses to east-const style 2021-07-22 09:17:02 +02:00
Space.cpp Kernel: Remove unnecessary weak pointer from Region to owning Process 2021-07-25 17:28:06 +02:00
Space.h Kernel: Remove double RedBlackTree lookup in VM/Space region removal 2021-07-17 16:22:59 +02:00
TypedMapping.h Kernel/TypedMapping: Round up length with offset_in_page 2021-07-02 13:16:12 +02:00
VMObject.cpp Kernel: Remove unnecessary counting of VMObject-attached Regions 2021-07-25 17:28:06 +02:00
VMObject.h Kernel: Remove unnecessary counting of VMObject-attached Regions 2021-07-25 17:28:06 +02:00