ladybird/Kernel
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
..
ACPI
API Kernel+Userland: Remove global futexes 2021-08-17 01:21:47 +02:00
Arch Kernel: Make Processor::platform_string() return StringView 2021-08-23 00:02:09 +02:00
Bus Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
Devices Kernel: Convert Processor::in_irq() to static current_in_irq() 2021-08-23 00:02:09 +02:00
FileSystem Kernel: Convert Processor::in_irq() to static current_in_irq() 2021-08-23 00:02:09 +02:00
Graphics Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
Heap Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
Interrupts Kernel: Rename Processor::id() => current_id() 2021-08-23 00:02:09 +02:00
Library Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
Locking Kernel: Convert Processor::in_irq() to static current_in_irq() 2021-08-23 00:02:09 +02:00
Memory Kernel: Mape quickmap functions VERIFY that MM lock is held 2021-08-23 00:02:09 +02:00
Modules
Net Kernel: Return ENOTSUP instead of panicking on invalid sockopt 2021-08-22 10:29:06 +02:00
Prekernel Meta: Add Clang support to the CMake build scripts 2021-08-08 10:55:36 +02:00
Storage Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
Syscalls Kernel: Make Processor::platform_string() return StringView 2021-08-23 00:02:09 +02:00
Tasks
Time Kernel: Convert Processor::in_irq() to static current_in_irq() 2021-08-23 00:02:09 +02:00
TTY Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
AddressSanitizer.cpp
AddressSanitizer.h
Assertions.h
AtomicEdgeAction.h
BootInfo.h
CMakeLists.txt Kernel/USB: Move UHCI related structures to subdirectory 2021-08-19 18:42:07 +02:00
CMOS.cpp
CMOS.h
CommandLine.cpp AK+Kernel: StringView hash map Traits should not set peek type to String 2021-08-18 10:21:19 +02:00
CommandLine.h AK+Kernel: StringView hash map Traits should not set peek type to String 2021-08-18 10:21:19 +02:00
ConsoleDevice.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
ConsoleDevice.h
CoreDump.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
CoreDump.h
Debug.h.in
DoubleBuffer.cpp
DoubleBuffer.h Kernel+LibC: Implement FIONREAD ioctl 2021-08-22 10:29:06 +02:00
embedmap.sh
Forward.h Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
FutexQueue.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
FutexQueue.h Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
GlobalProcessExposed.cpp Kernel: Rename Processor::id() => current_id() 2021-08-23 00:02:09 +02:00
init.cpp Kernel: Make Process::current() return a Process& instead of Process* 2021-08-19 23:49:53 +02:00
IO.h
KBuffer.h
KBufferBuilder.cpp
KBufferBuilder.h
KLexicalPath.cpp
KLexicalPath.h
kprintf.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
KResult.h Kernel: Stop allowing implicit conversion from KResult to int 2021-08-14 15:19:00 +02:00
kstdio.h Kernel: Introduce a StringView overload of dbgputstr(..) 2021-08-13 11:08:11 +02:00
KString.cpp
KString.h Kernel: Annotate KString methods as [[nodiscard]] 2021-08-13 11:08:11 +02:00
KSyms.cpp
KSyms.h
linker.ld
MiniStdLib.cpp
mkmap.sh
Module.h
Multiboot.h
Panic.cpp
Panic.h
PerformanceEventBuffer.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
PerformanceEventBuffer.h Kernel: Make sys$perf_register_string() generate the string ID's 2021-08-12 00:03:39 +02:00
PerformanceManager.h Kernel: Add syscall performance event type 2021-08-10 21:55:48 +02:00
PhysicalAddress.h
Process.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
Process.h Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
ProcessExposed.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
ProcessExposed.h Kernel+Userland: Remove chroot functionality 2021-08-15 12:44:35 +02:00
ProcessGroup.cpp Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
ProcessGroup.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
ProcessProcFSTraits.cpp Kernel: Specify directory entry types properly 2021-08-18 18:13:59 +02:00
ProcessSpecificExposed.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
Random.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
Random.h Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
RTC.cpp
RTC.h
SanCov.cpp Kernel: Convert Processor::in_irq() to static current_in_irq() 2021-08-23 00:02:09 +02:00
Scheduler.cpp Kernel: Rename Processor::id() => current_id() 2021-08-23 00:02:09 +02:00
Scheduler.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
Sections.h
StdLib.cpp Kernel: Remove copy_string_from_user() as it's no longer used 2021-08-15 12:44:35 +02:00
StdLib.h Kernel: Remove copy_string_from_user() as it's no longer used 2021-08-15 12:44:35 +02:00
Syscall.cpp Kernel: Stop allowing implicit conversion from KResult to int 2021-08-14 15:19:00 +02:00
Thread.cpp Kernel: Convert Processor::in_irq() to static current_in_irq() 2021-08-23 00:02:09 +02:00
Thread.h Kernel: Add VERIFY(!m_in_block) when entering Thread::block() 2021-08-23 00:02:09 +02:00
ThreadBlockers.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
ThreadTracer.cpp
ThreadTracer.h Kernel: Move {Process,Thread,Session,ProcessGroup}ID to Kernel/Forward.h 2021-08-14 19:58:11 +02:00
TimerQueue.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
TimerQueue.h
UBSanitizer.cpp
UnixTypes.h Kernel: Move {Process,Thread,Session,ProcessGroup}ID to Kernel/Forward.h 2021-08-14 19:58:11 +02:00
UserOrKernelBuffer.cpp
UserOrKernelBuffer.h
VirtualAddress.h
WaitQueue.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
WaitQueue.h Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
WorkQueue.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
WorkQueue.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00