serenity/Kernel
Sönke Holz ad64243bb9 Kernel/x86: Properly restore rflags in the syscall handler
The sysret instruction restores the rflags value from the r11 register.
Before, we expected that the value in RegisterState::r11 is still the
rflags value saved by syscall and therefore didn't copy
RegisterState::rflags to r11 before the sysret.

But signal handlers and ptrace can change the value in
RegisterState::r11 while we are handling a syscall, so we shouldn't
assume that it still contains the saved rflags.
While handling a syscall the contents of RegisterState::rflags may also
have been updated by e.g. ptrace in which case we should restore the
updated rflags, not the original state on syscall entry.
2024-08-01 22:08:08 +02:00
..
API Kernel: Introduce the unshare syscall family 2024-07-21 11:44:23 +02:00
Arch Kernel/x86: Properly restore rflags in the syscall handler 2024-08-01 22:08:08 +02:00
Boot Kernel/x86: Bake the Prekernel and the Kernel into one image 2024-05-14 23:37:38 +02:00
Bus Kernel/PCI: Handle 64-bit MSI-X BARs 2024-08-01 12:05:56 -07:00
Devices Kernel/GPU: Remove legacy VGA text mode support 2024-07-21 12:21:02 +02:00
FileSystem Kernel/Net: Rename IPv4-specific files and structs 2024-07-29 09:49:56 -04:00
Firmware/ACPI Kernel: Overhaul system shutdown procedure 2023-07-15 00:12:01 +02:00
Heap Kernel: Use the AK SetOnce container class in various cases 2024-04-26 23:46:23 -06:00
Interrupts Kernel/Interrupts: Move PCIIRQHandler => PCI::IRQHandler 2023-09-16 14:04:17 -06:00
Library Kernel: Add a conversion method from KBuffer to UserOrKernelBuffer 2024-07-21 15:38:52 +02:00
Locking Kernel: Use the AK SetOnce container class in various cases 2024-04-26 23:46:23 -06:00
Memory Kernel+Userland: Reduce jails to be a simple boolean flag 2024-07-21 11:44:23 +02:00
Net Kernel/Net: Rename IPv4-specific files and structs 2024-07-29 09:49:56 -04:00
Prekernel Prekernel: Move the generate_secure_seed function out of init.cpp 2024-06-29 19:56:45 +02:00
Security Kernel+Userland: Reduce jails to be a simple boolean flag 2024-07-21 11:44:23 +02:00
Syscalls Kernel+Userland: Simplify loading of an ELF interpreter path 2024-07-21 15:38:52 +02:00
Tasks Kernel: Add create_kernel_thread overload that accepts a lambda 2024-07-26 14:25:49 -04:00
Time Kernel: Deduplicate HardwareTimerBase::frequency()/ticks_per_second() 2024-04-30 06:01:26 -06:00
CMakeLists.txt Kernel/Net: Rename IPv4-specific files and structs 2024-07-29 09:49:56 -04:00
Debug.h.in Kernel: Add a minimal xHCI driver implementation 2024-07-26 14:25:49 -04:00
embedmap.sh
Forward.h Kernel: Introduce the HostnameContext class 2024-07-21 11:44:23 +02:00
generate-version-file.sh Kernel: Bake version information into the Kernel 2022-10-14 13:45:33 +02:00
kprintf.cpp Kernel: Remove the ConsoleManagement singleton 2024-07-04 22:20:35 +02:00
kstdio.h Kernel: Remove includes to LibC stdarg definitions 2023-03-01 19:36:53 -07:00
KSyms.cpp Kernel: Use AK::unwind_stack_from_frame_pointer 2024-05-14 14:02:06 -06:00
KSyms.h Kernel: Use the AK SetOnce container class in various cases 2024-04-26 23:46:23 -06:00
mkmap.sh
SanCov.cpp Kernel: Use the AK SetOnce container class in various cases 2024-04-26 23:46:23 -06: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