ladybird/Kernel
Marco Cutecchia 1b04c43690 Kernel: Initialize DiskCache's buffer before the dirty&clean lists
This commit fixes a kernel panic that happened when unmounting
a disk due to an invalid memory access.
This was because `DiskCache` initializes two linked lists that use
an argument `KBuffer` as the storage for their elements.
Since the member `KBuffer` was declared after the two lists,
when `DiskCache`'s destructor was called, then `KBuffer`'s destructor
was called before the ones of the two lists, causing a page fault in
the kernel.
2023-04-02 12:43:17 -06:00
..
API Kernel: Merge {get,set}_process_name syscalls to the prctl syscall 2023-03-15 20:10:48 +01:00
Arch Revert "Kernel/aarch64: Embed disk image into kernel binary" 2023-03-25 16:50:36 +00:00
Bus Kernel: Add support for Intel HDA 2023-03-25 21:27:03 +01:00
Devices Kernel/HID: Don't update the remapped Ctrl modifier unconditionally 2023-03-31 12:45:12 -04:00
FileSystem Kernel: Initialize DiskCache's buffer before the dirty&clean lists 2023-04-02 12:43:17 -06:00
Firmware Kernel/PCI: Hold a reference to DeviceIdentifier in the Device class 2023-01-26 23:04:26 +01:00
Graphics Kernel/Graphics: Use longer timeout settings in VirtIO GPU commands 2023-03-19 00:19:06 +00:00
Heap Kernel+LibC: Move name length constants to Kernel/API from limits.h 2023-01-21 10:43:59 -07:00
Interrupts Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
Library Kernel: Switch LockRefPtr<Inode> to RefPtr<Inode> 2023-03-09 21:54:59 +01:00
Locking Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
Memory Kernel: Switch LockRefPtr<Inode> to RefPtr<Inode> 2023-03-09 21:54:59 +01:00
Net Kernel: Use RefPtr instead of LockRefPtr for File and subclasses 2023-03-10 13:15:44 +01:00
Prekernel Kernel: Unify x86-64 assembly snippets naming for RDSEED & RDRAND 2023-01-25 23:17:36 +01:00
Storage Revert "Revert "Kernel/Storage: Remove the ramdisk implementation"" 2023-03-25 16:50:36 +00:00
Syscalls Kernel/Syscalls: Use copy_n_to_user when applicable 2023-03-24 18:25:12 +01:00
Tasks Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
Time Kernel: Add missing include that broke the AARCH64 build 2023-03-08 14:20:29 +01:00
TTY Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
AddressSanitizer.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
AddressSanitizer.h Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
Assertions.h Kernel: Replace VERIFY_NOT_REACHED with TODO_AARCH64 2022-10-16 17:35:37 +02:00
AtomicEdgeAction.h Kernel: Add per platform Processor.h headers 2021-10-14 01:23:08 +01:00
BootInfo.h Kernel: Move Memory/PageDirectory.{cpp,h} to arch-specific directory 2023-01-27 11:41:43 +01:00
CMakeLists.txt Kernel: Add support for Intel HDA 2023-03-25 21:27:03 +01:00
CommandLine.cpp Everywhere: Stop using NonnullOwnPtrVector 2023-03-06 23:46:35 +01:00
CommandLine.h Everywhere: Remove NonnullOwnPtr.h includes 2023-03-06 23:46:35 +01:00
Coredump.cpp Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
Coredump.h Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
CrashHandler.cpp Kernel: Add optional userspace backtrace to Process::crash 2023-02-08 18:19:48 +00:00
Credentials.cpp Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
Credentials.h Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
Debug.h.in Kernel: Add support for Intel HDA 2023-03-25 21:27:03 +01:00
DoubleBuffer.cpp Kernel: Move InterruptDisabler out of Arch directory 2022-10-17 20:11:31 +02:00
DoubleBuffer.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
embedmap.sh Kernel: Make new kernel build process work on macOS 2021-07-15 11:04:30 +02:00
ExecutionMode.h Kernel: Factor our PreviousMode into RegisterState::previous_mode 2023-01-27 11:41:43 +01:00
Forward.h Kernel/FileSystem: Simplify the ProcFS significantly 2023-02-24 22:14:18 +01:00
FutexQueue.cpp Kernel: Propagate OOM conditions out of sys$futex 2022-07-21 16:39:22 +02:00
FutexQueue.h AK+Kernel: Add AK::AtomicRefCounted and use everywhere in the kernel 2022-08-20 17:15:52 +02:00
generate-version-file.sh Kernel: Bake version information into the Kernel 2022-10-14 13:45:33 +02:00
InterruptDisabler.h Kernel: Move InterruptDisabler out of Arch directory 2022-10-17 20:11:31 +02:00
IOWindow.cpp Kernel/PCI: Hold a reference to DeviceIdentifier in the Device class 2023-01-26 23:04:26 +01:00
IOWindow.h Kernel: Remove declarations for non-existent methods 2023-01-27 20:33:18 +00:00
Jail.cpp Kernel: Make the Jails' internal design a lot more sane 2023-03-12 10:21:59 -06:00
Jail.h Kernel: Add missing include to Jail.h 2023-03-25 16:50:36 +00:00
KBuffer.h Everywhere: Remove string.h include from AK/Traits.h and resolve fallout 2023-01-21 10:43:59 -07:00
KBufferBuilder.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
KBufferBuilder.h Kernel: Remove includes to LibC stdarg definitions 2023-03-01 19:36:53 -07:00
KLexicalPath.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
KLexicalPath.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
kprintf.cpp Kernel: Remove includes to LibC stdarg definitions 2023-03-01 19:36:53 -07:00
kstdio.h Kernel: Remove includes to LibC stdarg definitions 2023-03-01 19:36:53 -07:00
KString.cpp Kernel: Add an error propagating KString::format(..) API :^) 2021-11-30 11:16:35 +01:00
KString.h AK: Add support for "debug only" formatters 2023-01-13 21:09:26 +00:00
KSyms.cpp Kernel: Add optional userspace backtrace to Process::crash 2023-02-08 18:19:48 +00:00
KSyms.h Kernel: Add ability to dump backtrace from provided frame pointer 2022-10-01 14:09:01 +02:00
MiniStdLib.cpp Kernel: Remove i686 support 2022-12-28 11:53:41 +01:00
mkmap.sh Kernel: Use the toolchain's nm in mkmap.sh 2021-12-30 18:10:51 +01:00
Multiboot.h Kernel: Add basic aarch64 support to MemoryManager 2022-09-12 00:56:44 +01:00
Panic.cpp Kernel: Reorganize Arch/x86 directory to Arch/x86_64 after i686 removal 2022-12-28 11:53:41 +01:00
Panic.h Kernel: Implement __panic() for the aarch64 Kernel 2022-05-03 21:53:36 +02:00
PerformanceEventBuffer.cpp AK+Kernel: Add includes before removing Kernel/ProcessExposed.h 2023-02-24 22:14:18 +01:00
PerformanceEventBuffer.h Everywhere: Remove needless copies of Error / ErrorOr instances 2023-02-10 09:08:52 +00:00
PerformanceManager.h AK+Kernel: Add includes before removing Kernel/ProcessExposed.h 2023-02-24 22:14:18 +01:00
PhysicalAddress.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Process.cpp Kernel: Make the Jails' internal design a lot more sane 2023-03-12 10:21:59 -06:00
Process.h Kernel: Merge {get,set}_process_name syscalls to the prctl syscall 2023-03-15 20:10:48 +01:00
ProcessGroup.cpp Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
ProcessGroup.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
ProcessList.cpp Kernel: Make the Jails' internal design a lot more sane 2023-03-12 10:21:59 -06:00
Random.cpp Kernel/aarch64: Add TimeManagement fallback entropy source to Random.cpp 2023-02-08 18:19:48 +00:00
Random.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
SanCov.cpp Kernel: Add some implied auto qualifiers 2021-12-30 14:32:17 +01:00
Scheduler.cpp Kernel: Factor our PreviousMode into RegisterState::previous_mode 2023-01-27 11:41:43 +01:00
Scheduler.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
ScopedCritical.cpp Kernel: Move ScopedCritical.cpp to Kernel base directory 2022-12-29 19:32:20 -07:00
ScopedCritical.h Kernel: Move ScopedCritical.cpp to Kernel base directory 2022-12-29 19:32:20 -07:00
Sections.h Kernel/aarch64: Change base address of the kernel to 0x2000000000 2023-01-24 14:54:44 +00:00
StdLib.cpp Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
StdLib.h Kernel/StdLib: Change try_copy_n_to_user to copy_n_to_user 2023-03-24 18:25:12 +01:00
Syscall.cpp Kernel: Add optional userspace backtrace to Process::crash 2023-02-08 18:19:48 +00:00
Thread.cpp Kernel/FileSystem: Simplify the ProcFS significantly 2023-02-24 22:14:18 +01:00
Thread.h Kernel: Switch LockRefPtr<Inode> to RefPtr<Inode> 2023-03-09 21:54:59 +01:00
ThreadBlockers.cpp Kernel: Switch LockRefPtr<Inode> to RefPtr<Inode> 2023-03-09 21:54:59 +01:00
ThreadTracer.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ThreadTracer.h Kernel+Userland: Remove dependency on i386-specific registers 2022-12-28 11:53:41 +01:00
TimerQueue.cpp Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
TimerQueue.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
UBSanitizer.cpp Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
UnixTypes.h Kernel: Add support for SA_SIGINFO 2022-03-04 20:07:05 +01:00
UserOrKernelBuffer.cpp Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
UserOrKernelBuffer.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
VirtualAddress.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
WaitQueue.cpp Kernel: Don't register thread as custom data for WaitQueueBlocker 2021-08-24 01:57:11 +02:00
WaitQueue.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
WorkQueue.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
WorkQueue.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00