Kernel: Remove the two remaining ARCH(I386) checks

This commit is contained in:
Andreas Kling 2022-12-25 18:21:31 +01:00
parent fb0dee5a54
commit d6fa42dd5c
Notes: sideshowbarker 2024-07-17 02:30:48 +09:00
2 changed files with 2 additions and 4 deletions

View file

@ -291,7 +291,7 @@ UNMAP_AFTER_INIT void MemoryManager::parse_memory_map()
global_data.physical_memory_ranges.append(PhysicalMemoryRange { PhysicalMemoryRangeType::Usable, start_address, length });
break;
case (MULTIBOOT_MEMORY_RESERVED):
#if ARCH(I386) || ARCH(X86_64)
#if ARCH(X86_64)
// Workaround for https://gitlab.com/qemu-project/qemu/-/commit/8504f129450b909c88e199ca44facd35d38ba4de
// That commit added a reserved 12GiB entry for the benefit of virtual firmware.
// We can safely ignore this block as it isn't actually reserved on any real hardware.

View file

@ -1205,12 +1205,10 @@ DispatchSignalResult Thread::dispatch_signal(u8 signal)
auto signal_trampoline_addr = process.signal_trampoline().get();
regs.set_ip(signal_trampoline_addr);
#if ARCH(X86_64)
// Userspace flags might be invalid for function entry, according to SYSV ABI (section 3.2.1).
// Set them to a known-good value to avoid weird handler misbehavior.
// Only IF (and the reserved bit 1) are set.
#if ARCH(I386)
regs.set_flags(2 | (regs.eflags & ~safe_eflags_mask));
#elif ARCH(X86_64)
regs.set_flags(2 | (regs.rflags & ~safe_eflags_mask));
#endif