ladybird/Kernel/Memory
Andreas Kling a930877f31 Kernel: Mape quickmap functions VERIFY that MM lock is held
The quickmap_page() and unquickmap_page() functions are used to map a
single physical page at a kernel virtual address for temporary access.

These use the per-CPU quickmap buffer in the page tables, and access to
this is guarded by the MM lock. To prevent bugs, quickmap_page() should
not *take* the MM lock, but rather verify that it is already held!

This exposed two situations where we were using quickmap without holding
the MM lock during page fault handling. This patch is forced to fix
these issues (which is great!) :^)
2021-08-23 00:02:09 +02:00
..
AddressSpace.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
AddressSpace.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
AllocationStrategy.h Kernel: Rename Kernel/VM/ to Kernel/Memory/ 2021-08-06 14:05:58 +02:00
AnonymousVMObject.cpp Kernel: Mape quickmap functions VERIFY that MM lock is held 2021-08-23 00:02:09 +02:00
AnonymousVMObject.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
InodeVMObject.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
InodeVMObject.h Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
MappedROM.h Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
MemoryManager.cpp Kernel: Mape quickmap functions VERIFY that MM lock is held 2021-08-23 00:02:09 +02:00
MemoryManager.h Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
PageDirectory.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
PageDirectory.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
PageFaultResponse.h Kernel: Rename Kernel/VM/ to Kernel/Memory/ 2021-08-06 14:05:58 +02:00
PhysicalPage.cpp Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
PhysicalPage.h Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
PhysicalRegion.cpp Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
PhysicalRegion.h Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
PhysicalZone.cpp Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
PhysicalZone.h Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
PrivateInodeVMObject.cpp Kernel: Make Kernel::VMObject allocation functions return KResultOr 2021-08-15 15:41:02 +02:00
PrivateInodeVMObject.h Kernel: Make Kernel::VMObject allocation functions return KResultOr 2021-08-15 15:41:02 +02:00
ProcessPagingScope.cpp Kernel: Rename Kernel/VM/ to Kernel/Memory/ 2021-08-06 14:05:58 +02:00
ProcessPagingScope.h Kernel: Rename Kernel/VM/ to Kernel/Memory/ 2021-08-06 14:05:58 +02:00
Region.cpp Kernel: Mape quickmap functions VERIFY that MM lock is held 2021-08-23 00:02:09 +02:00
Region.h Kernel: Make Memory::Region allocation functions return KResultOr 2021-08-15 15:41:02 +02:00
RingBuffer.cpp Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
RingBuffer.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
ScatterGatherList.cpp Kernel: Make Kernel::VMObject allocation functions return KResultOr 2021-08-15 15:41:02 +02:00
ScatterGatherList.h Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
SharedInodeVMObject.cpp Kernel: Make Kernel::VMObject allocation functions return KResultOr 2021-08-15 15:41:02 +02:00
SharedInodeVMObject.h Kernel: Make Kernel::VMObject allocation functions return KResultOr 2021-08-15 15:41:02 +02:00
TypedMapping.h Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
VirtualRange.cpp Kernel: Rename Range => VirtualRange 2021-08-06 14:05:58 +02:00
VirtualRange.h Kernel: Rename Range => VirtualRange 2021-08-06 14:05:58 +02:00
VirtualRangeAllocator.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
VirtualRangeAllocator.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
VMObject.cpp Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
VMObject.h Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00