ladybird/Kernel
Idan Horowitz f972eda7ed Kernel: Mark cloned volatile purgeable AnonymousVMOjects as purged
Our existing AnonymousVMObject cloning flow contains an optimization
wherein purgeable VMObjects which are marked volatile during the clone
are created as a new zero-filled VMObject (as if it was purged), which
lets us skip the expensive COW process.

Unfortunately, one crucial part was missing: Marking the cloned region
as purged, (which is the value returned from madvise when unmarking the
region as volatile) so the userland logic was left unaware of the
effective zero-ing of their memory region, resulting in odd behaviour
and crashes in places like our malloc's large allocation support.
2023-12-22 10:57:59 +01:00
..
API Kernel/riscv64: Add RISC-V Syscall API 2023-11-10 15:51:31 -07:00
Arch Kernel/riscv64: Specify correct alignment for FPUState struct 2023-12-16 18:21:03 +01:00
Boot Kernel: Switch init boot argument to "/init" 2023-11-27 09:29:05 -07:00
Bus Kernel/riscv64: Make the kernel compile 2023-11-10 15:51:31 -07:00
Devices Kernel: Resolve deadlock in MasterPTY due to mutex in spinlock scope 2023-12-16 12:55:41 +01:00
FileSystem Kernel/SysFS: Fix bizarre mode bits for directories in SysFS 2023-12-01 20:46:21 +01:00
Firmware/ACPI Kernel: Overhaul system shutdown procedure 2023-07-15 00:12:01 +02:00
Heap Kernel/riscv64: Make the kernel compile 2023-11-10 15:51:31 -07:00
Interrupts Kernel/Interrupts: Move PCIIRQHandler => PCI::IRQHandler 2023-09-16 14:04:17 -06:00
Library AK: Rename GenericTraits to DefaultTraits 2023-11-09 10:05:51 -05:00
Locking Kernel: Share Processor class (and others) across architectures 2023-10-03 16:08:29 -06:00
Memory Kernel: Mark cloned volatile purgeable AnonymousVMOjects as purged 2023-12-22 10:57:59 +01:00
Net Kernel: Stop including the ethernet header in LoopbackAdapter's mtu 2023-11-25 16:34:38 +01:00
Prekernel Everywhere: Replace ElfW(type) macro usage with Elf_type 2023-12-01 10:02:39 +02:00
Security Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
Syscalls Kernel: Reject loading ELF files with no loadable segments 2023-12-15 21:36:25 +01:00
Tasks Kernel: Make CrashHandler more useful before init_stage2 2023-12-09 22:36:28 +01:00
Time Kernel/riscv64: Make the kernel compile 2023-11-10 15:51:31 -07:00
CMakeLists.txt Kernel/riscv64: Make the kernel compilable using GCC 2023-12-14 09:02:15 -07:00
Debug.h.in Kernel: Add a framebuffer driver for 3Dfx Voodoo 3 2023-10-16 01:25:45 +02:00
embedmap.sh Kernel: Make new kernel build process work on macOS 2021-07-15 11:04:30 +02:00
Forward.h Kernel+LibCore+LibC: Split the mount syscall into multiple syscalls 2023-07-02 01:04:51 +02:00
generate-version-file.sh Kernel: Bake version information into the Kernel 2022-10-14 13:45:33 +02:00
kprintf.cpp Kernel: Move TTY-related code to a new subdirectory under Devices 2023-09-09 12:08:59 -06:00
kstdio.h Kernel: Remove includes to LibC stdarg definitions 2023-03-01 19:36:53 -07:00
KSyms.cpp Kernel/riscv64: Make the kernel compile 2023-11-10 15:51:31 -07:00
KSyms.h Kernel: Add ability to dump backtrace from provided frame pointer 2022-10-01 14:09:01 +02:00
mkmap.sh Kernel: Use the toolchain's nm in mkmap.sh 2021-12-30 18:10:51 +01:00
SanCov.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
Sections.h Kernel: Move all boot-related code to the new Boot subdirectory 2023-06-04 21:32:34 +02:00
UnixTypes.h Kernel/Net: Implement TCP_NODELAY 2023-11-08 09:31:54 +01:00